MongoDB\BSON\Serializable::bsonSerialize
  (mongodb >=1.0.0)
MongoDB\BSON\Serializable::bsonSerialize — Fornece um array ou documento para serializar como BSON
  
 
  Descrição
  
  
  
   Documentos raiz (ex.: um
   MongoDB\BSON\Serializable passado para
   MongoDB\BSON\Document::fromPHP()) sempre serão
   serializados como um documento BSON. Para valores de campos, arrays associativos e
   instâncias de stdClass serão serializados como um documento
   BSON e arrays sequenciais (isto é, índices numéricos sequenciais iniciando em
   0) serão serializados como um array BSON.
  
  
   Usuários são encorajados a incluir uma propriedade _id (ex.: um
   MongoDB\BSON\ObjectId inicializado no construtor)
   ao retornar dados para um documento nativo BSON. Na ausência de uma
   propriedade _id, a extensão ou servidor irá gerar um
   MongoDB\BSON\ObjectId para operações de inserção ou
   atualização, respectivamente.
  
  
 
  Parâmetros
  Esta função não possui parâmetros.
  
 
 
 
  Exemplos
  
   Exemplo #1 MongoDB\BSON\Serializable::bsonSerialize() retornando um array associativo para documento raiz
   
<?php
class MyDocument implements MongoDB\BSON\Serializable
{
    private $id;
    function __construct()
    {
        $this->id = new MongoDB\BSON\ObjectId;
    }
    function bsonSerialize(): array
    {
        return ['_id' => $this->id, 'foo' => 'bar'];
    }
}
echo MongoDB\BSON\Document::fromPHP(new MyDocument)->toRelaxedExtendedJSON(), "\n";
?>
    
   O exemplo acima produzirá
algo semelhante a:
{ "_id" : { "$oid" : "56cccdcada14d8755a58c591" }, "foo" : "bar" }
 
   
  
   Exemplo #2 MongoDB\BSON\Serializable::bsonSerialize() retornando um array sequencial para documento raiz
   
<?php
class MyArray implements MongoDB\BSON\Serializable
{
    function bsonSerialize(): array
    {
        return [1, 2, 3];
    }
}
echo MongoDB\BSON\Document::fromPHP(new MyArray)->toRelaxedExtendedJSON(), "\n";
?>
    
   O exemplo acima produzirá:
{ "0" : 1, "1" : 2, "2" : 3 }
 
   
  
   Exemplo #3 MongoDB\BSON\Serializable::bsonSerialize() retornando um array associativo para campo de documento
   
<?php
class MyDocument implements MongoDB\BSON\Serializable
{
    function bsonSerialize(): array
    {
        return ['foo' => 'bar'];
    }
}
$value = ['document' => new MyDocument];
echo MongoDB\BSON\Document::fromPHP($value)->toRelaxedExtendedJSON(), "\n";
?>
    
   O exemplo acima produzirá:
{ "document" : { "foo" : "bar" } }
 
   
  
   Exemplo #4 MongoDB\BSON\Serializable::bsonSerialize() retornando um array sequencial para campo de documento
   
<?php
class MyArray implements MongoDB\BSON\Serializable
{
    function bsonSerialize(): array
    {
        return [1, 2, 3];
    }
}
$value = ['array' => new MyArray];
echo MongoDB\BSON\Document::fromPHP($value)->toRelaxedExtendedJSON(), "\n";
?>
    
   O exemplo acima produzirá:
{ "array" : [ 1, 2, 3 ] }