Хотелось бы получить(json,ini, ассоциативный массив,xml- как угодно) дерево включения файлов(что-то
вроде этого).
Задача может быть решена тремя путями:
- 1. перегрузкой стандартных конструкций
- 2. какими-то магическими параметрами в отладчике(xdebug торт, но полную информацию о зависимостях между файлами не даёт)
- 3. grep-ом и созданием альтернатив(вроде ov_include и ловля источника через debug_backtrace)
- 4. с помощью силы воли и глаз пройтись по всем файлам
Первый вариант требует вмешательство в интерпретатор и трудозатраты на актуализацию патча под новые версии php.
Второй мне неизвестен. На всякий случай, конфиг Xdebug:
zend_extension_ts="D:\PHP\ext\php_xdebug.dll"
xdebug.profiler_enable = 1
xdebug.profiler_output_dir = "D:\server\profiling\"
xdebug.trace_output_name = %t.%s.%H
xdebug.collect_params 1
xdebug.collect_return 1
xdebug.collect_vars 1
xdebug.default_enable 1
xdebug.show_mem_delta 1
php_flag xdebug.auto_trace 1
xdebug.trace_format 1
Третий классный и наверное самый простой, но с точки зрения производительности суровый(создали static списковый массив внутри функции, который проверяет не пытаемся ли мы зациклиться или включить уже имеющийся файл, обработать backtrace, записать результаты) когда много файлов.
Четвёртый для больших проектов не подойдет.
Зачем.
Сейчас джуниоров набираю, а документация для движка готова лишь на треть. Хочется на плоттере распечатать схему работы каждой страницы, чтобы ребятам не пришлось угадывать откуда и что.