Hiện tại, trình điều khiển PHP không có chức năng nào được tích hợp sẵn cho việc này, __set_state () mà câu trả lời khác đã đề cập chỉ để có thể giải mã phiên làm việc và không cho phép bạn tạo nó thông qua các thành phần cụ thể.
Bạn sẽ phải làm những việc sau để tự động tạo ID:
<?php
function createId( $yourTimestamp )
{
static $inc = 0;
$ts = pack( 'N', $yourTimestamp );
$m = substr( md5( gethostname()), 0, 3 );
$pid = pack( 'n', posix_getpid() );
$trail = substr( pack( 'N', $inc++ ), 1, 3);
$bin = sprintf("%s%s%s%s", $ts, $m, $pid, $trail);
$id = '';
for ($i = 0; $i < 12; $i++ )
{
$id .= sprintf("%02X", ord($bin[$i]));
}
return new MongoID($id);
}
var_dump( createId( time() ) );
?>