From 03760a2565082393f93ac0f50c1525970e100e1b Mon Sep 17 00:00:00 2001 From: Jeremy Mikola Date: Thu, 29 Oct 2015 22:38:16 +0000 Subject: [PATCH] Update MongoDB\BSON serializable interfaces git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@338057 c90b9560-bf6c-de11-be94-00142212c4b1 --- reference/mongodb/bson/serializable.xml | 3 +- .../bson/serializable/bsonserialize.xml | 133 +++++++++++++++--- reference/mongodb/bson/unserializable.xml | 4 +- .../bson/unserializable/bsonunserialize.xml | 57 +++++--- 4 files changed, 160 insertions(+), 37 deletions(-) diff --git a/reference/mongodb/bson/serializable.xml b/reference/mongodb/bson/serializable.xml index bd78cf93e6..2f923b0b66 100644 --- a/reference/mongodb/bson/serializable.xml +++ b/reference/mongodb/bson/serializable.xml @@ -12,7 +12,8 @@
&reftitle.intro; - + Classes that implement this interface may return data to be serialized as a + BSON array or document in lieu of the object's public properties.
diff --git a/reference/mongodb/bson/serializable/bsonserialize.xml b/reference/mongodb/bson/serializable/bsonserialize.xml index 6f6b6ede29..ec00004906 100644 --- a/reference/mongodb/bson/serializable/bsonserialize.xml +++ b/reference/mongodb/bson/serializable/bsonserialize.xml @@ -4,19 +4,27 @@ MongoDB\BSON\Serializable::bsonSerialize - Description + Provides an array or document to serialize as BSON &reftitle.description; - abstract public ReturnTypeMongoDB\BSON\Serializable::bsonSerialize + abstract public array|objectMongoDB\BSON\Serializable::bsonSerialize - + Called during serialization of the object to BSON. The method must return an + array or stdClass. + + + Root documents (e.g. a MongoDB\BSON\Serializable + passed to MongoDB\BSON\fromPHP) will always be + serialized as a BSON document. For field values, associative arrays and + stdClass instances will be serialized as a BSON + document and sequential arrays (i.e. sequential, numeric indexes starting at + 0) will be serialized as a BSON array. - @@ -27,14 +35,8 @@ &reftitle.returnvalues; - - - - - - &reftitle.errors; - - + An array or stdClass to be serialized as + a BSON array or document. @@ -42,20 +44,115 @@ &reftitle.examples; - <function>MongoDB\BSON\Serializable::bsonSerialize</function> example + <function>MongoDB\BSON\Serializable::bsonSerialize</function> returning an associative array for root document 'bar']; + } +} + +$bson = MongoDB\BSON\fromPHP(new MyDocument); +echo MongoDB\BSON\toJSON($bson), "\n"; ?> ]]> - &example.outputs.similar; + &example.outputs; + + + + + <function>MongoDB\BSON\Serializable::bsonSerialize</function> returning a sequential array for root document + + +]]> + + &example.outputs; + + + + + + + <function>MongoDB\BSON\Serializable::bsonSerialize</function> returning an associative array for document field + + 'bar']; + } +} + +$value = ['document' => new MyDocument]; +$bson = MongoDB\BSON\fromPHP($value); +echo MongoDB\BSON\toJSON($bson), "\n"; + +?> +]]> + + &example.outputs; + + + + + + + <function>MongoDB\BSON\Serializable::bsonSerialize</function> returning a sequential array for document field + + new MyArray]; +$bson = MongoDB\BSON\fromPHP($value); +echo MongoDB\BSON\toJSON($bson), "\n"; + +?> +]]> + + &example.outputs; + + @@ -65,7 +162,9 @@ &reftitle.seealso; - + MongoDB\BSON\Unzerializable::bsonUnserialize + MongoDB\BSON\Persistable + diff --git a/reference/mongodb/bson/unserializable.xml b/reference/mongodb/bson/unserializable.xml index 8b3c2746f5..565d003d84 100644 --- a/reference/mongodb/bson/unserializable.xml +++ b/reference/mongodb/bson/unserializable.xml @@ -12,7 +12,9 @@
&reftitle.intro; - + Classes that implement this interface may be specified in a + type map for + unserializing BSON arrays and documents (both root and embedded).
diff --git a/reference/mongodb/bson/unserializable/bsonunserialize.xml b/reference/mongodb/bson/unserializable/bsonunserialize.xml index 49a508cb0c..1e6feb4d37 100644 --- a/reference/mongodb/bson/unserializable/bsonunserialize.xml +++ b/reference/mongodb/bson/unserializable/bsonunserialize.xml @@ -4,29 +4,37 @@ MongoDB\BSON\Unserializable::bsonUnserialize - Description + Constructs the object from a BSON array or document &reftitle.description; - abstract public ReturnTypeMongoDB\BSON\Unserializable::bsonUnserialize + abstract public voidMongoDB\BSON\Unserializable::bsonUnserialize arraydata - + Called during unserialization of the object from BSON. The properties of the + BSON array or document will be passed to the method as an array. - + + + This method acts as the + constructor of the + object. The __construct() method + will not be called after this method. + + &reftitle.parameters; - data + data (array) - + Properties within the BSON array or document. @@ -36,14 +44,7 @@ &reftitle.returnvalues; - - - - - - &reftitle.errors; - - + The return value from this method is ignored. @@ -56,15 +57,33 @@ data = $data; + } +} + +$bson = MongoDB\BSON\fromJSON('{ "foo": "bar" }'); +$value = MongoDB\BSON\toPHP($bson, ['root' => 'MyDocument']); +var_dump($value); ?> ]]> - &example.outputs.similar; + &example.outputs; + array(1) { + ["foo"]=> + string(3) "bar" + } +} ]]> @@ -74,7 +93,9 @@ &reftitle.seealso; - + MongoDB\BSON\Serializable::bsonSerialize + MongoDB\BSON\Persistable +