अभी, PHP ड्राइवर के पास इसके लिए कोई अंतर्निहित कार्यक्षमता नहीं है, __set_state() जिसका उल्लेख किया गया अन्य उत्तर केवल आईडी को सत्र-deserialize करने में सक्षम होने के लिए है और आपको इसे विशिष्ट घटकों के माध्यम से बनाने की अनुमति नहीं देता है।पी>
स्वचालित रूप से एक आईडी बनाने के लिए आपको निम्न कार्य करने होंगे:
<?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() ) );
?>