Запишите, какие файлы являются частью исполнения? (включено, обязательно, загружено классом)

[Это вопрос покрытия кода, но я надеюсь использовать его в производственной среде с целью точного определения кода, который можно удалить.]

Можно ли как-то записать, какие файлы являются частью выполнения PHP? То есть, когда файл загружается в рамках выполнения какой-то точки входа, есть ли способ зафиксировать этот факт? То есть, когда файлы включены, требуются или загружаются как часть загрузки классов - в дополнение к самому файлу php точки входа? (Часть загрузки классов, возможно, самая простая, так как вы можете справиться с загрузчиком классов самостоятельно).

Предыстория: у меня есть кодовая база с некоторым наследием, и в качестве очистки было бы неплохо удалить файлы, которые больше не используются. Этот трюк даст мне понять, какие файлы используются. Запустите эту регистрацию достаточно долго, и вы можете просто удалить все нетронутые.

«Уровень 2»: возможно, включены файлы, которые на самом деле не используются, т. е. включена некоторая библиотека функций, но выполнение фактически никогда не использует какие-либо функции. Как это отследить? Является ли XDebug и другие довольно навязчивые способы единственным вариантом?


person stolsvik    schedule 28.11.2011    source источник


Ответы (3)


Если вы ищете файлы, включенные: -

get_included_files();

http://php.net/manual/en/function.get-included-files.php

Чтобы отслеживать список загруженных классов, Xdebug должен быть лучшим выбором.
Или APD : Расширенный отладчик PHP

Взгляните на apd_callstack, вы можете найти там что-то неожиданное.

person ajreal    schedule 28.11.2011
comment
И вы можете использовать auto-append-file чтобы добавить его в каждый исполняемый скрипт и зарегистрировать включенные файлы. Это был бы самый быстрый и простой способ, который я могу себе представить, чтобы профилировать это. - person Till Helge; 28.11.2011

http://www.php.net/manual/en/function.get-included-files.php ?

насколько я понимаю, auutoload просто приводит к требованию

person idm    schedule 28.11.2011

Я думаю, вы можете использовать часть вывода debug_backtrace().

person Your Common Sense    schedule 28.11.2011