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