Утилита графа вызовов PHP?[закрыто]
-
22-07-2019 - |
Вопрос
Я ищу утилиту, похожую на gprof, которая будет генерировать граф вызовов для PHP-кода.Я бы предпочел что-то, что может производить графический вывод или, по крайней мере, текстовый вывод, который может быть интерпретирован GraphViz или аналогичным, но я соглашусь на вывод в виде обычного текста.
Кто-нибудь знает какой-нибудь инструмент, который может это сделать?
Решение
Я обязательно попробую Doxygen . Он поддерживает PHP, и создаваемые им графы вызовов и графы вызывающих абонентов были очень полезны при изучении «чужого кода». для меня ранее.
Другие советы
Не уверен, что существует что-то, что может анализировать исходный код, написанный на 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. Р>