var exporter
v7.2.0
El componente VarExporter proporciona varias herramientas para lidiar con el estado interno de los objetos:
VarExporter::export() permite exportar cualquier estructura de datos PHP serializable a código PHP simple. Al hacerlo, conserva toda la semántica asociada con el mecanismo de serialización de PHP ( __wakeup , __sleep , Serializable , __serialize , __unserialize );Instantiator::instantiate() crea un objeto y establece sus propiedades sin llamar a su constructor ni a ningún otro método;Hydrator::hydrate() puede establecer las propiedades de un objeto existente;Lazy*Trait puede hacer que una clase se comporte como un fantasma de carga diferida o un proxy virtual. La razón para usar VarExporter::export() vs serialize() o igbinary es el rendimiento: gracias a OPcache, el código resultante es significativamente más rápido y más eficiente en memoria que usar unserialize() o igbinary_unserialize() .
A diferencia de var_export() , esto funciona con cualquier valor PHP serializable.
También proporciona algunas mejoras sobre var_export() / serialize() :
r o n en los datos;ClassNotFoundException en lugar de no ser serializadas en objetos PHP_Incomplete_Class ;SplObjectStorage , ArrayObject o ArrayIterator ;Reflection* , IteratorIterator y RecursiveIteratorIterator generan una excepción cuando se serializan (su versión no serializada está rota de todos modos, consulte https://bugs.php.net/76737). Instantiator::instantiate($class) crea un objeto de la clase dada sin llamar a su constructor ni a ningún otro método.
Hydrator::hydrate() establece las propiedades de un objeto existente, incluidos los privados y protegidos. Por ejemplo: