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

График зависимостей для большого приложения PHP

Недавно я унаследовал большое приложение PHP с NO object/modules/namespaces... только много файлов, содержащих функции.

Конечно, есть много зависимостей (и все файлы и почти всегда включены).

Я ищу инструмент, который мог бы анализировать файлы и генерировать граф зависимостей. Тогда было бы легче обнаружить независимые файлы/набор файлов и перегруппировать все это.

Пока что лучшее решение, которое я нашел, было бы написать sniff для CodeSniffer, чтобы обнаружить все вызовы функций, а затем использовать их для генерации графика.

Кажется, что-то полезное для других, поэтому я уверен, что инструменты уже существуют для него.

Что вы порекомендовали бы?

4b9b3361

Ответ 1

Я думаю, что лучшим решением является использование doc generat + grapviz, PHPDocumentor, похоже, имеет расширение Grapviz на https://github.com/phpDocumentor/GraphViz

Это пример, сделанный с помощью PHPDocumentor: http://demo.phpdoc.org/Clean/graphs/classes.svg

Слишком вы можете использовать иерархический профайлер, например xhprof (https://github.com/facebook/xhprof), это может нарисовать дерево всех вызовов функций из выполнения,

Пример формы xhprof draw, выполненный Graphviz A example form xhprof draw done by Graphviz

Ответ 2

Я мог бы рекомендовать легкий проект, который я написал несколько дней назад. В основном у меня было 300+ файлов PHP-проекта, и я хотел определить, какие файлы эти файлы требуют /include и наоборот. Более того, я хотел проверить каждый отдельный файл, какие файлы этот файл требует/включает (прямо или косвенно, т.е. через наследование файлов) и наоборот: какие файлы включают этот конкретный файл. Для любой комбинации из них мне нужен интерактивный график зависимостей (база по включению файла, а не по вызову/использованию класса/функции).

Проверьте песочницу проекта и ее исходный код.

Обратите внимание, что все это было написано всего за 2 дня, поэтому не судите об этом слишком суровый. Важно то, что он выполняет свою работу!