MongoDB\BSON\Serializable::bsonSerialize

(mongodb >=1.0.0)

MongoDB\BSON\Serializable::bsonSerialize — BSON으로 직렬화할 배열 또는 문서를 제공합니다.


설명

abstract public MongoDB\BSON\Serializable::bsonSerialize(): array|object

객체를 BSON으로 직렬화하는 동안 호출됩니다. 메서드는 배열 또는 stdClass를 반환해야 합니다.

루트 문서(예: MongoDB\BSON\fromPHP()로 전달된 MongoDB\BSON\Serializable)는 항상 BSON 문서로 직렬화됩니다. 필드 값의 경우 연관 배열 및 stdClass 인스턴스는 BSON 문서로 직렬화되고 순차 배열(즉, 0에서 시작하는 순차, 숫자 인덱스)은 BSON 배열로 직렬화됩니다.

사용자는 BSON 루트 문서에 대한 데이터를 반환할 때 _id 속성(예: 생성자에서 초기화된 MongoDB\BSON\ObjectId)을 포함하는 것이 좋습니다. 그렇지 않으면 드라이버나 데이터베이스는 문서를 삽입하거나 업데이트할 때 각각 MongoDB\BSON\ObjectId를 생성해야 합니다.


매개변수

이 함수에는 매개변수가 없습니다.


반환 값

BSON 배열 또는 문서로 직렬화할 배열 또는 stdClass입니다.


Examples

예제 #1 MongoDB\BSON\Serializable::bsonSerialize() 루트 문서에 대한 연관 배열을 반환

                  
<?php

class MyDocument implements MongoDB\BSON\Serializable
{
    private $id;

    function __construct()
    {
        $this->id = new MongoDB\BSON\ObjectId;
    }

    function bsonSerialize()
    {
        return ['_id' => $this->id, 'foo' => 'bar'];
    }
}

$bson = MongoDB\BSON\fromPHP(new MyDocument);
echo MongoDB\BSON\toJSON($bson), "\n";

?>
                  
                

위의 예는 다음과 유사한 결과를 출력합니다.

{ "_id" : { "$oid" : "56cccdcada14d8755a58c591" }, "foo" : "bar" }
                

예제 #2 루트 문서에 대한 순차 배열을 반환하는 MongoDB\BSON\Serializable::bsonSerialize()

                  
<?php

class MyArray implements MongoDB\BSON\Serializable
{
    function bsonSerialize()
    {
        return [1, 2, 3];
    }
}

$bson = MongoDB\BSON\fromPHP(new MyArray);
echo MongoDB\BSON\toJSON($bson), "\n";

?>
                  
                

위의 예는 다음을 출력합니다.

{ "0" : 1, "1" : 2, "2" : 3 }
                

예제 #3 MongoDB\BSON\Serializable::bsonSerialize() 문서 필드에 대한 연관 배열을 반환

                  
<?php

class MyDocument implements MongoDB\BSON\Serializable
{
    function bsonSerialize()
    {
        return ['foo' => 'bar'];
    }
}

$value = ['document' => new MyDocument];
$bson = MongoDB\BSON\fromPHP($value);
echo MongoDB\BSON\toJSON($bson), "\n";

?>
                  
                

위의 예는 다음을 출력합니다.

{ "document" : { "foo" : "bar" } }
                

예제 #4 문서 필드에 대한 순차 배열을 반환하는 MongoDB\BSON\Serializable::bsonSerialize()

                  
<?php

class MyArray implements MongoDB\BSON\Serializable
{
    function bsonSerialize()
    {
        return [1, 2, 3];
    }
}

$value = ['array' => new MyArray];
$bson = MongoDB\BSON\fromPHP($value);
echo MongoDB\BSON\toJSON($bson), "\n";

?>
                  
                

위의 예는 다음을 출력합니다.

{ "array" : [ 1, 2, 3 ] }
                

기타