Serialization
Using (un-)serialize() on a collection is not a supported use-case
and may break when changes on the collection's internals happen in the future.
If a collection needs to be serialized, use toArray()
and reconstruct
the collection manually.
$collection = new ArrayCollection([1, 2, 3]);
$serialized = serialize($collection->toArray());
A reconstruction is also necessary when the collection contains objects with
infinite recursion of dependencies like in this json_serialize()
example:
$foo = new Foo();
$bar = new Bar();
$foo->setBar($bar);
$bar->setFoo($foo);
$collection = new ArrayCollection([$foo]);
$json = json_serialize($collection->toArray()); // recursion detected
Serializer libraries can be used to create the serialization-output to prevent errors.