MongoDB\BSON\Serializable::bsonSerialize

(mongodb >=1.0.0)

MongoDB\BSON\Serializable::bsonSerialize — Надає масив або документ для серіалізації в BSON

Опис

abstract public MongoDB\BSON\Serializable::bsonSerialize(): array|stdClass|MongoDB\BSON\Document|MongoDB\BSON\PackedArray

Викликається під час серіалізації об'єкта BSON. Метод повинен повертати масив (array) або екземпляр одного із класів: stdClass MongoDB\BSON\Document, илиMongoDB\BSON\PackedArray

Кореневі документи (наприклад, MongoDB\BSON\Serializable, передані в MongoDB\BSON\fromPHP()) завжди будуть серіалізовані як документ BSON. Для значень полів асоціативні масиви та екземпляри stdClass будуть серіалізовані у вигляді документа BSON, а послідовні масиви (наприклад, послідовні числові індекси, що починаються з ) будуть серіалізовані у вигляді масиву BSON.

Користувачам рекомендовано включати властивість _id (наПриклад,MongoDB\BSON\ObjectId, ініціалізований у конструкторі) при поверненні даних для кореневого документа BSON; інакше драйвер чи база даних повинні будуть згенерувати MongoDB\BSON\ObjectId при вставці чи злитті документа, відповідно.

Список параметрів

Ця функція не має параметрів.

Значення, що повертаються

Повертає масив (array) або об'єкт одного із класів: stdClass MongoDB\BSON\Document, илиMongoDB\BSON\PackedArray, який буде серіалізовано як масив BSON або документ.

список змін

ВерсияОпис
PECL mongodb 1.17.0
Тип, що повертається, був змінений з arrayоб'єкт. Замість object тип, що повертається, тепер визначений як об'єкт класу stdClass. . Класи, які реалізують цей інтерфейс, повинні бути змінені, щоб більше не оголошувати тип object, що повертається. Оскільки тип, що повертається, попередньо оголошений, у PHP 8.1 або більше нових версіях видається попередження про старіння.

На додаток до раніше описаних змін, драйвер також підтримує повернення екземплярів класів MongoDB\BSON\Document і MongoDB\BSON\PackedArray. Будь ласка, зверніть увагу, що будь-які повернені екземпляри класу MongoDB\BSON\PackedArray автоматично перетворюються на об'єкти при збереженні як кореневих документів. Вони зберігаються як масивів, коли вказуються як значення вбудованого поля.

Приклади

Приклад #1MongoDB\BSON\Serializable::bsonSerialize()возвращение ассоциативного массива для корневого документа

Loading...

Висновок наведеного прикладу буде схожим на:

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

Приклад #2 Приклад использования методаMongoDB\BSON\Serializable::bsonSerialize(), що повертає асоціативний масив для кореневого документа

Loading...

Результат виконання наведеного прикладу:

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

Приклад #3MongoDB\BSON\Serializable::bsonSerialize()возвращение ассоциативного массива для поля документа

Loading...

Результат виконання наведеного прикладу:

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

Приклад #4MongoDB\BSON\Serializable::bsonSerialize()возвращение последовательного массива для поля документа

Loading...

Результат виконання наведеного прикладу:

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

Дивіться також