Утилита PHP-графика?

Я ищу утилиту, подобную gprof, которая будет генерировать граф вызовов для кода PHP. Я бы предпочел что-то, что может произвести графический вывод или, по крайней мере, текстовый вывод, который может быть интерпретирован GraphViz или аналогичным, но я соглашусь на простой текстовый вывод.

Кто-нибудь знает какой-нибудь инструмент, который может это сделать?

Я бы определенно попробовал Doxygen . Он поддерживает PHP, и графики вызовов и графики вызывающих абонентов, которые он создает, были очень полезны для изучения «внешнего кода» для меня ранее.

Пример графика вызова doxygen

Не уверен, что есть что-то, что может анализировать исходный код, написанный на 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.