Получить файл - где находится метод класса

Petja

Новичок
PHP:
$class = new Class;

$class_methods = get_class_methods(get_class($class));
foreach ($class_methods as $method_name) {
    echo "$method_name\n";
}
Выводит список методов, в частности run, подскажите пожалуйста, как узнать в каком файле лежит данный метод данного объекта?
 

Petja

Новичок
У тебя экзамен, что ли?
Нет, сайт один перестал работать частично. Пытаюсь локализовать проблему. Разбираюсь с ооп кодом...
У меня не так много опыта работы с ооп, поэтому решил сейчас попробовать поспрашивать на форуме, вместо того, чтобы ковыряться до конца.
Потому что сейчас есть другая работа и она тоже срочная и теперь стоит, и я как бы разбираюсь но спешу...

У меня еще один вопрос остался, я его в третьей теме спрошу, надеюсь последний...
 

Вурдалак

Продвинутый новичок
Нужно установить нормальную IDE и для нахождения метода понадобится просто кликнуть по нему.
 
  • Like
Реакции: WMix

Petja

Новичок
Нужно установить нормальную IDE и для нахождения метода понадобится просто кликнуть по нему.
Да, я в phpStorm работаю, но в данном коде - часто встречаются одноименные методы, и не понятно какой именно в данный момент вызывается...
 

Petja

Новичок
Одноименные методы одноименных объектов одноименных классов..?:D
Ну просто я жал контрл+клик на метод, а он меня отправлял к методу класса - который не работал. Я делал поиск по файлам и находил другой одноименный метод - который работал.

PS: Он не может проиндексировать 1 в 1 данный код, потому что там как-то все "сложно".
 

Petja

Новичок
Эту проблему может криво, но тоже решил, не смог найти как брать инфу о методе объекта...

Надо было узнать в каком файле хранится вызываемый метод process:
PHP:
$o = $this->process();
Сначала получил класс:
PHP:
echo get_class($this);die; // modResourceUpdateProcessor
Затем уже взял данные о методе:
PHP:
$reflectionMethod = new ReflectionMethod('modResourceUpdateProcessor', 'process');
var_dump($reflectionMethod->getFileName());
var_dump($reflectionMethod->getStartLine());
Благодарю всех за участие!
 
Сверху