MongoDB\BSON\Serializable::bsonSerialize
  (mongodb >=1.0.0)
MongoDB\BSON\Serializable::bsonSerialize — Proporciona un array o un documento a serializar como BSON
  
 
  Descripción
  
  
  
   Los documentos raíz (por ejemplo, un
   MongoDB\BSON\Serializable pasado a
   MongoDB\BSON\Document::fromPHP()) siempre serán serializados
   como documento BSON. Para los valores de campo, los arrays asociativos y las
   instancias stdClass serán serializados como
   documento BSON y los arrays secuenciales (es decir, índices numéricos secuenciales
   comenzando en 0) serán serializados como array BSON.
  
  
   Se recomienda incluir una propiedad _id
   (por ejemplo un MongoDB\BSON\ObjectId inicializado en el constructor)
   al devolver datos para un documento raíz BSON. En ausencia de una
   propiedad _id, la extensión o el servidor generará un
   MongoDB\BSON\ObjectId para las operaciones de inserción o
   actualización, respectivamente.
  
  
 
  Parámetros
  Esta función no contiene ningún parámetro.
  
 
 
 
  Ejemplos
  
   Ejemplo #1 MongoDB\BSON\Serializable::bsonSerialize() devolviendo un array asociativo para el documento raíz
   
<?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";
?>
    
   Resultado del ejemplo anterior es similar a:
{ "_id" : { "$oid" : "56cccdcada14d8755a58c591" }, "foo" : "bar" }
 
   
  
   Ejemplo #2 MongoDB\BSON\Serializable::bsonSerialize() devolviendo un array secuencial para el documento raíz
   
<?php
class MyArray implements MongoDB\BSON\Serializable
{
    function bsonSerialize(): array
    {
        return [1, 2, 3];
    }
}
echo MongoDB\BSON\Document::fromPHP(new MyArray)->toRelaxedExtendedJSON(), "\n";
?>
    
   El ejemplo anterior mostrará:
{ "0" : 1, "1" : 2, "2" : 3 }
 
   
  
   Ejemplo #3 MongoDB\BSON\Serializable::bsonSerialize() devolviendo un array asociativo para el 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";
?>
    
   El ejemplo anterior mostrará:
{ "document" : { "foo" : "bar" } }
 
   
  
   Ejemplo #4 MongoDB\BSON\Serializable::bsonSerialize() devolviendo un array secuencial para el campo de documento
   
<?php
class MyArray implements MongoDB\BSON\Serializable
{
    function bsonSerialize(): array
    {
        return [1, 2, 3];
    }
}
$value = ['array' => new MyArray];
$bson = MongoDB\BSON\fromPHP($value);
echo MongoDB\BSON\toJSON($bson), "\n";
?>
    
   El ejemplo anterior mostrará:
{ "array" : [ 1, 2, 3 ] }