我正在尝试获取从超类继承的 PHP 类的绝对路径名。看起来应该很简单。我认为下面的代码尽可能简洁地解释它:
// myapp/classes/foo/bar/AbstractFoo.php
class AbstractFoo {
public function getAbsolutePathname() {
// this always returns the pathname of AbstractFoo.php
return __FILE__;
}
}
// myapp/classes/Foo.php
class Foo extends AbstractFoo {
public function test() {
// this returns the pathname of AbstractFoo.php, when what I
// want is the pathname of Foo.php - WITHOUT having to override
// getAbsolutePathname()
return $this->getAbsolutePathname();
}
}
我不想覆盖的原因getAbsolutePathname()
是会有很多扩展 AbstractFoo 的类,在文件系统上可能有许多不同的地方(Foo 实际上是一个模块),这似乎违反了 DRY。