Ищете программное обеспечение, которое будет анализировать php-код (то есть весь WordPress или тематическую тему) и покажу мне красивые картинки (возможно, блок-диаграмму ) всех подключений, которые помогут мне быстрее понять, где и что связано с тем, что ,
В идеале это программное обеспечение будет работать на Mac, но я возьму что угодно: Windows, Linux, веб-сайты и т. Д.
[UPDATE: этот ответ не обрабатывает пространства имен, поэтому он в основном устарел. Я оставлю его здесь, если кто-нибудь найдет интересный подход DOT.]
Вот простой способ наследования класса графа в PHP.
Grep для определения классов, а затем преобразовать выход grep в синтаксис DOT. ПРИМЕЧАНИЕ. Этот процесс потребует проб и ошибок в вашей ситуации. Запустите grep отдельно и настройте его, чтобы показать правильные строки определения класса перед тем, как поместить его в скрипт!
Этот скрипт был для PHP на стандартном * nix (я использовал Ubuntu), с установленным графическим интерфейсом и используя grep -v, чтобы исключить некоторые каталоги, которые не представляли интереса, потому что я смотрел на CakePHP-кодовую базу. В этой ситуации Fdp работал лучше, чем sfdp, dot, circo или neato.
Создать generateClassHierarchy.sh
#!/bin/bash echo 'digraph code {' > code.dot; grep -r "^class " * | grep -v "^app/vendors" | grep -v "^cake/" | grep -v "Binary file" | sed 's/.*://' | sed 's/class / /' | sed 's/ extends / -> /' | sed 's/ implements .*//' | sed 's/ \?{.*$//' | sort >> code.dot echo '}' >> code.dot; fdp -Tpng -ocode.fdp.png code.dot 2> /dev/null # Ignore syntax error echo "OK";
Тогда просто:
cd /var/www/my_app/ # or wherever bash ~/shell/generateClassHierarchy.sh # or wherever eog code.fdp.png
Замените eog на предпочтительный просмотрщик изображений. Я запустил это на Zend Framework в качестве теста и составил 22 мегабайт PNG-графика. Запуск его только на Zend_Db показывает вам это (пример на моем сайте):
http://chapman.id.au/generate-php-class-inheritance-diagrams-in-graphviz
Возможно, http://phpcallgraph.sourceforge.net/ для статического анализа.
Он может выводиться в различные форматы.
BOUML может сделать UML-диаграммы из существующего кода PHP
nWire устарел, не поддерживает последние версии PHP (пространства имен). Версия сообщества Visual Paradigm бесплатна для некоммерческих проектов, но также не работает на последних версиях PHP.
phUML – очень полезный бесплатный инструмент. Он больше не поддерживается, но все еще отлично работает для PHP 5. Пользователи Mac также устанавливают графику .