2016-11-19 3 views
2

DataExtension 내에서 원래 클래스의 클래스 이름 (문자열)을 검색하려면 어떻게해야합니까?SilverStripe DataExtension을 통해 원래 클래스 이름 검색

class FooExtension extends DataExtension { 

    // This returns "FooExtension" (but I need the original-class name, not the extension's) 
    private $foo1 = self::class; 

    // This returns nothing 
    public function Foo2 { 
     return $this->owner; 
    } 

    // This returns "FooExtension", surprisingly 
    public function Foo3 { 
     return get_class($this->owner); 
    } 

    // This returns nothing either 
    public function Foo4 { 
     return $this->owner->class; 
    } 
} 

그래서 예를 들어 Page이 확장을 적용 할 때, 어디 선가 확장 클래스에 반환하거나 페이지를 (문자열)을 할당 할.

답변

6

DataExtension에서 $this->owner->ClassName으로 전화하여 소유자 클래스를 가져올 수 있습니다.