在PHP中获取对象依赖项

时间:2011-03-16 15:21:23

标签: php zend-framework serialization object-serialization

我有一个依赖于其他对象的对象实例,例如

$objA = new Some_Class();
$objB = new Other_Class();
$objC = new Another_One();

$objA->property = new stdClass;
$objB->key = $objA;
$objB->arr = array(new Other_Object());

$objectC->property = $objB
$objectC->other = array(array('k'=>'v'));

如何获取$objectC中使用的类列表?

在这种特殊情况下:

array(
    'Some_Class',
    'Other_Class',
    'Another_Class',
    'stdClass',
    'Another_Object'
)

我需要序列化对象,但在反序列化之前我需要实例化所有需要的类 你会如何自动获得课程?

1 个答案:

答案 0 :(得分:4)

serialize不浅,很深。

这意味着如果你致电serialize($objectC);,你不仅会获得$ objectC,还会获得所有的属性,包括它可能包含的任何对象

如果必须重新实例化其中一个子对象(假设它是一个包含不可序列化的资源的数据库适配器),请考虑实现Serializable接口,这样可以让您执行以下操作:使用__sleep/__wakeup魔术方法无法实现序列化和反序列化操作的粒度控制。您可以使用界面提供的方法返回自定义数据结构,以便您根据需要手动重建对象。