Ответ 1
Я бы определенно попробовал Doxygen. Он поддерживает PHP, а графики вызовов и диаграммы вызывающих абонентов, которые он создает, были очень полезны для изучения ранее "внешнего кода".
Я ищу утилиту, подобную gprof, которая будет генерировать график вызовов для кода PHP. Я бы предпочел что-то, что может произвести графический вывод или, по крайней мере, текстовый вывод, который может быть интерпретирован GraphViz или аналогичным, но я соглашусь на простой вывод текста.
Кто-нибудь знает о любом инструменте, который может это сделать?
Я бы определенно попробовал Doxygen. Он поддерживает PHP, а графики вызовов и диаграммы вызывающих абонентов, которые он создает, были очень полезны для изучения ранее "внешнего кода".
Не уверен, что существует что-то, что может анализировать исходный код, написанный на PHP, для его создания... Но есть вероятность, когда вы используете код.
Возможно, вы захотите взглянуть на расширение Xdebug: он приносит профилирование на PHP и генерировать похожие файлы, которые можно читать с помощью KCacheGrind на Linux.
И этот способ может генерировать какие-то callgraphs.
Он также может быть интегрирован с PHPUNit, чтобы генерировать code-coverage при выполнении модульных тестов
Некоторое время назад PHPUnit смог сгенерировать некоторые callgraphs с помощью graphviz; Я больше не нахожу этот вариант: - (
EDIT: это первый раз, когда я слышу об этом, но есть проект под названием phpCallGraph, который может помочь вам тоже... и кажется, что есть работа, если я смотрю на нее changelog
Как уже отмечалось, Doxygen может генерировать графики вызовов.
Xdebug может генерировать отслеживание функций. Они отличаются от doxygen-графов тем, что они генерируются из кода времени выполнения, тогда как doxygen генерируется статически. Я не знаю никаких инструментов, которые могут превратить функции в визуальное представление, хотя это не должно быть так сложно.
Существует также расширение bytekit, основной функцией которого является отображение байт-кода, который генерирует исходный код php. Он может показать это на графике, который по существу является callgraph.
Это старая тема, но в случае, если кто-то найдет ее полезной....
kKCachegrind будет создавать callgraphs, показывающие фактические потоки выполнения.
PHPCallGraph довольно просто вокруг графика, который выполняет статический анализ perfroms
Кроме того, мои собственные усилия, которые похожи на PHPCallGraph, но добавляет информацию о циклах/условных структурах и предоставляет метод для добавления обратных вызовов к узлам. Некоторые примеры скриптов в комплекте с набором инструментальных средств, но вы также можете встроить его в свои собственные скрипты.
Если вам нужно что-то интерактивное, ознакомьтесь с новым nWire for PHP. Это плагин Eclipse, который работает с PDT 2.1 и Zend Studio 7.0.