Вопрос

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

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

Это было полезно?

Решение

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

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

Другие советы

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

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

И этот может генерировать какие-то графы вызовов.


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

<Ч>

РЕДАКТИРОВАТЬ: я впервые слышу об этом, но есть проект под названием phpCallGraph , который может быть в состоянии помочь вам тоже ... и, похоже, работа продолжается, если я посмотрю на нее список изменений

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

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

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

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

  • kKCachegrind создаст графы вызовов, показывающие фактические потоки выполнения.

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top