@HeBonpoc

Как найти место определения функции в PHP?

Условия:
1) удалённый хост с доступом по ssh;
2) много файлов, выкачивать их не вариант.
get_defined_functions() говорит что функция определена, интерпретатор не ругается на её вызов.
Как найти где определяется функция?

Пробовал следующее:
grep --include="*.php" -r -l "function foo_bar(" ./

Я подумал что в регексе открывающая скобка будет служебным символом, но всё всё ок. Создал файл с определением функции и только он нашёлся после того как команда отработала.
  • Вопрос задан
  • 3387 просмотров
Решения вопроса 1
BuriK666
@BuriK666
Компьютерный псих
<?php
function test() {
}

$ref = new ReflectionFunction('test');
echo $ref->getFileName().':'.$ref->getStartLine().PHP_EOL;
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Melkij
@Melkij
PostgreSQL DBA
Я подумал что в регексе открывающая скобка будет служебным символом

Так вы и не просили поиск по регулярке. Флаги -P или -G

grep -riP 'function\s+foo_bar\s*\('  --include="*.php" ./
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы