var exporter
v7.2.0
ส่วนประกอบ VarExporter มีเครื่องมือต่างๆ เพื่อจัดการกับสถานะภายในของออบเจ็กต์:
VarExporter::export() อนุญาตให้ส่งออกโครงสร้างข้อมูล PHP ที่สามารถซีเรียลไลซ์ได้ไปยังโค้ด PHP ธรรมดา ในขณะที่ทำเช่นนั้น มันจะรักษาความหมายทั้งหมดที่เกี่ยวข้องกับกลไกการทำให้เป็นอนุกรมของ PHP ( __wakeup , __sleep , Serializable , __serialize , __unserialize );Instantiator::instantiate() สร้างวัตถุและตั้งค่าคุณสมบัติโดยไม่ต้องเรียกตัวสร้างหรือวิธีอื่นใดHydrator::hydrate() สามารถกำหนดคุณสมบัติของวัตถุที่มีอยู่ได้Lazy*Trait สามารถทำให้คลาสทำงานเป็น ghost-loading ghost หรือพร็อกซีเสมือนได้ เหตุผลในการใช้ VarExporter::export() vs serialize() หรือ igbinary คือประสิทธิภาพ: ต้องขอบคุณ OPcache โค้ดที่ได้จึงเร็วกว่าอย่างเห็นได้ชัด และมีประสิทธิภาพหน่วยความจำมากกว่าการใช้ unserialize() หรือ igbinary_unserialize()
ต่างจาก var_export() ตรงที่ใช้ได้กับค่า PHP ที่สามารถซีเรียลไลซ์ได้
นอกจากนี้ยังมีการปรับปรุงเล็กน้อยเหนือ var_export() / serialize() :
r หรือ n ในข้อมูลClassNotFoundException เป็นวัตถุ PHP_Incomplete_ClassSplObjectStorage , ArrayObject หรือ ArrayIterator จะถูกเก็บรักษาไว้Reflection* , IteratorIterator และ RecursiveIteratorIterator มีข้อยกเว้นเมื่อมีการทำให้เป็นอนุกรม (เวอร์ชันที่ไม่ซีเรียลไลซ์นั้นใช้งานไม่ได้อยู่แล้ว ดู https://bugs.php.net/76737) Instantiator::instantiate($class) สร้างวัตถุของคลาสที่กำหนดโดยไม่ต้องเรียก Constructor หรือวิธีการอื่นใด
Hydrator::hydrate() กำหนดคุณสมบัติของวัตถุที่มีอยู่ รวมถึงวัตถุส่วนตัวและวัตถุที่ได้รับการป้องกัน ตัวอย่างเช่น: