À l'heure actuelle, le pilote PHP n'a pas de fonctionnalité intégrée pour cela, le __set_state() que l'autre réponse mentionnée est uniquement pour pouvoir désérialiser en session l'ID et ne vous permet pas de le créer via les composants spécifiques.
Vous devrez procéder comme suit pour créer automatiquement un identifiant :
<?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() ) );
?>