Существуют ли какие-либо инструменты визуализации PHP-кода? - PullRequest
16 голосов
/ 23 февраля 2010

В поисках программного обеспечения, которое будет анализировать php-код (то есть весь WordPress или тематическую тему) и показывать мне красивые картинки (возможно, блок-схему ) всех соединений, чтобы помочь мне быстрее понять где вещи и что с чем связано.

В идеале это программное обеспечение должно работать на Mac, но я возьму все, что угодно: Windows, Linux, через Интернет и т. Д.

Ответы [ 6 ]

4 голосов
/ 27 ноября 2012

[ОБНОВЛЕНИЕ: Этот ответ не обрабатывает пространства имен, поэтому в основном устарел. Я оставлю это здесь на всякий случай, если кто-нибудь найдет подход DOT интересным.]

Вот простой способ графического наследования классов в PHP.

Grep для определений классов и затем преобразование вывода grep в синтаксис DOT. ПРИМЕЧАНИЕ: этот процесс потребует проб и ошибок в вашей ситуации. Запустите grep отдельно и настройте его, чтобы отобразить правильные строки определения класса, прежде чем помещать его в сценарий!

Этот скрипт был для PHP на стандартном * nix (я использовал Ubuntu), с установленным Graphviz и с использованием 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

4 голосов
/ 23 февраля 2010
  • KCachegrind - С помощью Xdebug вы можете профилировать выполнение ваших скриптов, KCachegrind может генерировать из этого
  • nwire для Eclipse
2 голосов
/ 23 марта 2011

Возможно http://phpcallgraph.sourceforge.net/ для статического анализа.

Может выводить в различные форматы.

1 голос
/ 23 марта 2011

BOUML может создавать диаграммы UML из существующего кода PHP

0 голосов
/ 15 марта 2016

Try График JB

если вы хорошо разбираетесь в java-скрипте, попробуйте D3.js

https://d3js.org/

0 голосов
/ 21 июля 2015

nWire устарел, не поддерживает последние версии PHP (пространства имен).Общественная версия Visual Paradigm бесплатна для некоммерческих проектов, но не работает и в последних версиях PHP.

phUML - очень полезный бесплатный инструмент. Он больше не поддерживается, но все еще отлично работает для PHP 5Пользователи Mac должны установить graphviz тоже.

...