提供了导出、实例化、加载、克隆和懒加载 PHP 对象的工具
VarExporter 组件提供了各种工具,用于处理对象的内部状态:
VarExporter::export() 允许将任何可序列化的 PHP 数据结构导出为纯 PHP 代码。在执行此操作时,它保留了与 PHP 序列化机制相关的所有语义(__wakeup,__sleep,Serializable,__serialize,__unserialize)。该组件依赖于原生的 ext-deepclone 扩展来实现最高性能,或者在缺省情况下依赖其 补丁。除了 DeepCloner 和 VarExporter::export() 所使用的 deepclone_to_array() 和 deepclone_from_array() 函数外,该扩展还提供了 deepclone_hydrate() 函数,可让您实例化/注入对象,而无需调用其构造函数,包括私有、受保护和只读属性。
使用 VarExporter::export() * 而不是 serialize() 或 igbinary 的原因是性能: 由于 OPcache, 所生成的代码比使用 unserialize() 或 igbinary_unserialize() 要快得多, 而且更节省内存。
\r 或 \n; * 缺失的类会抛出 ClassNotFoundException,而不是被序列化为 PHP_Incomplete_Class 对象; * 与 SplObjectStorage,ArrayObject 或 ArrayIterator 实例相关的引用被保留; * Reflection*,IteratorIterator 和 RecursiveIterator 类的实例暂无开放 Issues,或尚未同步最近议题。