A blend of var_export() + serialize() to turn any serializable data structure to plain PHP code
The VarExporter component allows exporting any serializable PHP data structure to
plain PHP code. While doing so, it preserves all the semantics associated with
the serialization mechanism of PHP (
It also provides an instantiator that allows creating and populating objects without calling their constructor nor any other methods.
The reason to use this component vs
igbinary is performance: thanks to
OPcache, the resulting code is significantly faster and more memory efficient
var_export(), this works on any serializable PHP value.
It also provides a few improvements over
- the output is PSR-2 compatible;
- the output can be re-indented without messing up with
\nin the data
- missing classes throw a
ClassNotFoundExceptioninstead of being unserialized to
- references involving
ArrayIteratorinstances are preserved;
RecursiveIteratorIteratorclasses throw an exception when being serialized (their unserialized version is broken anyway, see https://bugs.php.net/76737).