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 ] }
기타
- MongoDB\BSON\Unserializable::bsonUnserialize() - BSON 배열 또는 문서에서 개체를 구성합니다.
- MongoDB\BSON\Persistable
- Persisting Data