Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

Example of doxygen call graph

Ответ 2

Не уверен, что существует что-то, что может анализировать исходный код, написанный на PHP, для его создания... Но есть вероятность, когда вы используете код.

Возможно, вы захотите взглянуть на расширение Xdebug: он приносит профилирование на PHP и генерировать похожие файлы, которые можно читать с помощью KCacheGrind на Linux.

И этот способ может генерировать какие-то callgraphs.


Он также может быть интегрирован с PHPUNit, чтобы генерировать code-coverage при выполнении модульных тестов
Некоторое время назад PHPUnit смог сгенерировать некоторые callgraphs с помощью graphviz; Я больше не нахожу этот вариант: - (


EDIT: это первый раз, когда я слышу об этом, но есть проект под названием phpCallGraph, который может помочь вам тоже... и кажется, что есть работа, если я смотрю на нее changelog

Ответ 3

Как уже отмечалось, Doxygen может генерировать графики вызовов.

Xdebug может генерировать отслеживание функций. Они отличаются от doxygen-графов тем, что они генерируются из кода времени выполнения, тогда как doxygen генерируется статически. Я не знаю никаких инструментов, которые могут превратить функции в визуальное представление, хотя это не должно быть так сложно.

Существует также расширение bytekit, основной функцией которого является отображение байт-кода, который генерирует исходный код php. Он может показать это на графике, который по существу является callgraph.

Ответ 4

Это старая тема, но в случае, если кто-то найдет ее полезной....

  • kKCachegrind будет создавать callgraphs, показывающие фактические потоки выполнения.

  • PHPCallGraph довольно просто вокруг графика, который выполняет статический анализ perfroms

  • Кроме того, мои собственные усилия, которые похожи на PHPCallGraph, но добавляет информацию о циклах/условных структурах и предоставляет метод для добавления обратных вызовов к узлам. Некоторые примеры скриптов в комплекте с набором инструментальных средств, но вы также можете встроить его в свои собственные скрипты.

Ответ 5

Если вам нужно что-то интерактивное, ознакомьтесь с новым nWire for PHP. Это плагин Eclipse, который работает с PDT 2.1 и Zend Studio 7.0.