diff options
Diffstat (limited to 'vendor/doctrine/collections/docs/en/serialization.rst')
| -rw-r--r-- | vendor/doctrine/collections/docs/en/serialization.rst | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/vendor/doctrine/collections/docs/en/serialization.rst b/vendor/doctrine/collections/docs/en/serialization.rst new file mode 100644 index 0000000..be53d6e --- /dev/null +++ b/vendor/doctrine/collections/docs/en/serialization.rst | |||
| @@ -0,0 +1,29 @@ | |||
| 1 | Serialization | ||
| 2 | ============= | ||
| 3 | |||
| 4 | Using (un-)serialize() on a collection is not a supported use-case | ||
| 5 | and may break when changes on the collection's internals happen in the future. | ||
| 6 | If a collection needs to be serialized, use ``toArray()`` and reconstruct | ||
| 7 | the collection manually. | ||
| 8 | |||
| 9 | .. code-block:: php | ||
| 10 | |||
| 11 | $collection = new ArrayCollection([1, 2, 3]); | ||
| 12 | $serialized = serialize($collection->toArray()); | ||
| 13 | |||
| 14 | A reconstruction is also necessary when the collection contains objects with | ||
| 15 | infinite recursion of dependencies like in this ``json_serialize()`` example: | ||
| 16 | |||
| 17 | .. code-block:: php | ||
| 18 | |||
| 19 | $foo = new Foo(); | ||
| 20 | $bar = new Bar(); | ||
| 21 | |||
| 22 | $foo->setBar($bar); | ||
| 23 | $bar->setFoo($foo); | ||
| 24 | |||
| 25 | $collection = new ArrayCollection([$foo]); | ||
| 26 | $json = json_serialize($collection->toArray()); // recursion detected | ||
| 27 | |||
| 28 | Serializer libraries can be used to create the serialization-output to prevent | ||
| 29 | errors. | ||
