【问题标题】:Getting object dependencies in PHP在 PHP 中获取对象依赖项
【发布时间】:2011-03-16 15:21:22
【问题描述】:

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

$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'
)

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

【问题讨论】:

    标签: php zend-framework serialization object-serialization


    【解决方案1】:

    serialize 不浅,很深。

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

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

    【讨论】:

      猜你喜欢
      • 2016-05-24
      • 2013-03-03
      • 2010-09-27
      • 2016-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多