如何从继承的方法获取当前类的路径?
我有以下:
class Parent {
protected function getDir() {
return dirname(__FILE__);
}
}
?>
和
class Child extends Parent {
public function __construct() {
echo $this->getDir();
}
}
$tmp = new Child(); // output: '/parentDir'
?>
__FILE__常量总是指向它所在的文件的源文件,而不管继承。
我想得到派生类的路径的名称。
有什么优雅的方式吗?
我可以做一些事情,沿着$ this-> getDir(__ FILE__);但这意味着我必须经常重复我自己。我正在寻找一个方法,把所有的逻辑在父类,如果可能的话。
更新:
接受解决方案(Palantir):
class Parent {
protected function getDir() {
$reflector = new ReflectionClass(get_class($this));
return dirname($reflector->getFileName());
}
}
?>