Задать вопрос
@HeBonpoc

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

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

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

Я подумал что в регексе открывающая скобка будет служебным символом, но всё всё ок. Создал файл с определением функции и только он нашёлся после того как команда отработала.
  • Вопрос задан
  • 3522 просмотра
Подписаться 3 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Stepik
    PHP (pro)
    1 месяц
    Далее
  • Skillbox
    Профессия PHP-разработчик с нуля до PRO
    7 месяцев
    Далее
Решения вопроса 1
BuriK666
@BuriK666
Компьютерный псих
<?php
function test() {
}

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

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

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

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

Похожие вопросы