Допустим, у меня есть два файла, каждый из которых имеет класс. Как получить имя файла, где находится дочерний класс, в родительском классе?
Файл 2 (дочерний класс):
class B extends A{ }
Файл 1:
class A{ final protected function __construct(){ // here I want to get the filename where class B is, // or whatever class is the child } }
Не совсем уверен, какой цели он служит, но здесь вы идете:
class A{ final protected function __construct(){ $obj = new ReflectionClass($this); $filename = $obj->getFileName(); } }
Вы можете обманывать и использовать debug_backtrace :
class A { final protected function __construct() { $stacktrace = @debug_backtrace(false); $filename = $stacktrace[0]['file']; } }