sanches.free
Где в коде объявлена функция PHP: ReflectionFunction в отладке Битрикс
Задача
В большом дереве модулей и /bitrix/ неочевидно, в каком файле живёт нужная процедура. Вместо поиска по проекту «в лоб» иногда достаточно спросить у рантайма PHP, где функция была определена.
Минимальный пример
$ref = new ReflectionFunction('bx_mail');
echo $ref->getFileName() . ' определена в ' . $ref->getStartLine();Имя функции задаётся строкой так же, как в обычном вызове. Для методов класса используйте ReflectionMethod по классу и имени метода — отдельный сценарий, но та же идея «зафиксировать» исходный файл и номер строки.
На что обратить внимание
- Отражение недоступно, если функция ещё не загружена — сначала убедитесь, что нужный файл подключён через автозагрузку или явный include.
- Часть обёрточных функций в ядре Bitrix может вести в сгенерированный или промежуточный слой — смотрите итоговый путь здраво.
- Для отладки безопаснее запускать фрагмент на копии сайта или в ограниченном CLI-скрипте с нужным контекстом ядра.
Не хотите копаться сами?
Починю за 1-3 дня. Без предоплаты — оплата по результату.
15+ лет опыта с 1С-Битрикс · Без предоплаты · 7 дней гарантии