Как я могу узнать, в каком файле и строке была определена данная функция?
110
Вы также можете сделать это в самом PHP:
$reflFunc = new ReflectionFunction('function_name');
print $reflFunc->getFileName() . ':' . $reflFunc->getStartLine();
$reflFunc->isInternal() === TRUE
значит -> getFileName () и -> getStartLine () вернет FALSE.$reflFunc = new ReflectionMethod($this, 'method_name');
Либо используйте IDE, которая позволяет это сделать (я бы порекомендовал Eclipse PDT), либо вы всегда можете использовать grep, если в Linux, либо с помощью wingrep. В Linux это будет примерно так:
из корневой папки проекта.
источник
Если вы используете IDE, например Netbeans, вы можете CTRL + щелкнуть по использованию функции, и она перенесет вас туда, где она определена, при условии, что файл находится в папке проекта, которую вы определили.
Однако для этого нет кода или функции.
источник
Я предполагаю, что под «описанным» вы имеете в виду «определенное». Для этого в идеале вам понадобится достойная среда IDE, которая сможет это сделать.
источник
Это базовая функция, которая будет сканировать все ваши файлы проекта на предмет определенной строки и сообщать вам, в каком файле он находится и с какой позиции символа он начинается, используя только базовый php. Надеюсь, это кому-то поможет ...
источник
другой способ проверить, где определена функция, попробуйте переопределить функцию, система ошибок PHP просто вернет ошибку, сообщающую вам, где функция была ранее определена
источник
Мне нравится решение Тома, поэтому я подумал, что могу поделиться еще немного трюками с ReflectionFunction (он должен работать на каждом PHP 5):
однострочный для печати имени файла:
Обратите внимание, что он не покажет вам расположение внутренних функций (таких как _ ), но он все равно может распечатать API для него, как показано ниже.
чтобы распечатать определение и параметры функции:
Пример:
источник
Вам понадобится IDE, поддерживающая функциональность «Объявление открытой функции». Подходит для php Eclipse PDT.
Чтобы найти определение функции, выделите имя функции, удерживайте CTRL + щелкните имя.
источник