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