2011-03-16 3 views
0

다른 객체에 의존하는 객체의 인스턴스가 있습니다.PHP에서 객체 의존성 얻기

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

나는 객체를 직렬화해야하지만 일렬 화를 푸는 전에 모든 필요한 클래스를 인스턴스화해야합니다.
클래스는 자동으로 어떻게 받습니까?

답변

4

serialize은 얕지 않습니다.

serialize($objectC);을 호출하면 $ objectC뿐만 아니라 모든 속성 ()에이 포함될 수있는 모든 개체가 포함될 수 있습니다.

경우 해야 reinstantiate 자식 객체 (의는 그것이 unserializable 자원을 포함하는 데이터베이스 어댑터의 가정 해 봅시다) 중 하나, 당신은 직렬화 때 unserialize 작업을 통해 세밀한 제어를 수행 할 수있는 Serializable 인터페이스를 구현하는 것이 좋습니다 그것은 단순히 __sleep/__wakeup 마법 방법으로는 불가능합니다. 인터페이스에서 제공하는 메소드를 사용하여 필요에 따라 오브젝트를 수동으로 재구성 할 수있는 사용자 정의 된 데이터 구조를 리턴 할 수 있습니다.