Ситуация
У меня есть проект PHP с большим количеством классов с множеством взаимосвязей во множестве папок, следующих Соглашение об именах Zend.
Я использую среду IDE NetBeans 7.1. Работаю под Windows 7.
Цель
Мне нужно увидеть графическое представление отношений классов, возможно, разной глубины и разной степени сложности. Также было бы неплохо, если бы классы на диаграмме были кликабельными. Мне не обязательно создавать документацию.
Попытки
1. В NetBeans
NetBeans — отличная IDE с множеством функций. На самом деле, он распознает зависимости классов, и было бы разумно предположить, что у него есть какой-то способ графического представления этой связи, изначально или через плагин. Такой плагин существует, но для версии 5.5. У меня 7.1, и она не совместима. Потерпеть поражение.
2. Архитектор предприятия
Простой поиск в Google выдает Enterprise Architect как универсальное, всеобъемлющее средство для решения такие проблемы. Итак, скачиваю и устанавливаю. Я не буду вдаваться в подробности того, как я не мог понять, как что-то делать, и как в руководствах хвастается, что может делать программа, но редко упоминается как.
Итак, я импортировал источник. Он сгенерировал множество разных классов и проанализировал все члены. Кроме того, он сгенерировал диаграммы классов. Идеально!, хотя я, но увы. На диаграммах классов показаны только отношения между классами, файлы которых находились в одной исходной папке, несмотря на то, что отношения явно зарегистрированы в свойствах классов. Поиск документации о том, как мне объединить все эти диаграммы в одну, не увенчался успехом. Потерпеть поражение.
ПРИМЕЧАНИЕ. Я создал параллельный поток перед этим здесь.
3. PHP_UML
Найден этот инструмент PEAR. Выглядело хорошо. Итак, я прочитал документацию о том, как установить его для моей установки из разных источников, и запустил его. Сначала я использовал выходной формат html. Здорово! Много документации с указателем, бла-бла-бла. Однако лучшее, что он мог сделать в нужном мне направлении, это: Излишне говорить, что это очень бедная, суперупрощенная версия того, что мне действительно нужно. Вывод: провал.
4. Архитектор предприятия + PHP_UML
Однако PHP_UML также может генерировать XMI. Ух ты. Очень хорошо. Я могу хранить свои отношения и просматривать их по-разному и обмениваться с другими людьми.
Итак, я импортировал его в Enterprise Architect. Результат: тот же, что и раньше только с Enterprise Architect, только без диаграмм классов. Просто классы. Насколько я читал об этом, теперь я могу вручную создавать отношения. Эпический провал.
5. АргоУМЛ + PHP_UML
Где-то во время поиска решения я наткнулся на чей-то комментарий, в котором говорилось, что они используют ArgoUML. Скачал и установил. XMI импортировался с некоторыми трудностями (пришлось явно изменить версию на 1). Ошибка (см. Попытка 3).
Вывод
Такая, казалось бы, тривиальная задача, и в то же время такая сложная. Нужно ли мне просматривать весь список, пробуя каждое приложение?