How to get the path of the current class, from an inherited method?
Ben şu var:
<?php // file: /parentDir/class.php
class Parent {
protected function getDir() {
return dirname(__FILE__);
}
}
?>
ve
<?php // file: /childDir/class.php
class Child extends Parent {
public function __construct() {
echo $this->getDir();
}
}
$tmp = new Child(); // output: '/parentDir'
?>
The __FILE__
constant always points to the source-file of the file it is in, regardless of inheritance.
I would like to get the name of the path for the derived class.
Bunu yapmanın Is there any elegant yolu? Strong>
I $this->getDir(__FILE__);
satırlar boyunca bir şey yapabilirdi ama ben oldukça sık kendimi tekrarlamak zorunda olduğu anlamına gelir. Ben mümkünse, ana sınıfındaki tüm mantığı koyar bir yöntem arıyorum.
Update:
Accepted solution (by Palantir):
<?php // file: /parentDir/class.php
class Parent {
protected function getDir() {
$reflector = new ReflectionClass(get_class($this));
return dirname($reflector->getFileName());
}
}
?>