SilverStripe通过DataExtension检索原始类名

Fal*_*ude 2 php inheritance 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;
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,例如,当应用此扩展时Page,我想在扩展类中的某处返回或分配Page(字符串).

ell*_*iot 6

您可以通过$this->owner->ClassName在DataExtension中调用来获取所有者的类.