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;
- abstractpublicReturnTypeMongoDB\BSON\Serializable::bsonSerialize
+ abstractpublicarray|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;
- MongoDB\BSON\Serializable::bsonSerialize example
+ MongoDB\BSON\Serializable::bsonSerialize 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;
+
+
+
+
+ MongoDB\BSON\Serializable::bsonSerialize returning a sequential array for root document
+
+
+]]>
+
+ &example.outputs;
+
+
+
+
+
+
+ MongoDB\BSON\Serializable::bsonSerialize 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;
+
+
+
+
+
+
+ MongoDB\BSON\Serializable::bsonSerialize 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;
- abstractpublicReturnTypeMongoDB\BSON\Unserializable::bsonUnserialize
+ abstractpublicvoidMongoDB\BSON\Unserializable::bsonUnserializearraydata
-
+ 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
+