Ich habe ein PHP-Projekt mit vielen Klassen mit vielen Beziehungen in vielen Ordnern nach den Zend Namenskonvention .
Ich benutze die NetBeans IDE 7.1. Ich arbeite unter Windows 7.
Ich muss eine grafische Darstellung der Klassenbeziehungen sehen, möglicherweise in unterschiedlichen Tiefen und unterschiedlichen Komplexitätsgraden. Außerdem wäre es schön, wenn die Klassen im Diagramm anklickbar sind. Ich muss nicht unbedingt Dokumentation generieren.
NetBeans ist eine großartige IDE mit vielen Funktionen. Tatsächlich erkennt es Klassenabhängigkeiten, und es wäre klug anzunehmen, dass es eine Möglichkeit gibt, diese Beziehung nativ oder über ein Plugin grafisch darzustellen. Ein solches Plugin existiert, ist aber für Version 5.5. Ich habe 7.1, und es ist nicht kompatibel. Fehler.
Eine einfache Google-Suche bringt Enterprise Architect als allumfassendes, vollständiges Tool zur Lösung solcher Probleme auf den Markt . Also, ich lade und installiere. Ich werde nicht auf die Details eingehen, wie ich nichts verstehen konnte und wie die Tutorials damit prahlen, was die Software kann, aber selten sagen wie .
>Also habe ich die Quelle importiert. Es erzeugte viele verschiedene Klassen und analysierte alle Mitglieder. Außerdem erzeugte es die Klassendiagramme. "Perfekt!", Dachte ich, aber leider. Die Klassendiagramme zeigen nur Beziehungen zwischen Klassen, deren Dateien sich im selben Quellordner befinden, obwohl die Beziehungen in den Eigenschaften der Klassen sichtbar registriert sind. Eine Suche nach einer Dokumentation, wie ich all diese Diagramme zu einem zusammenführen könnte, war nicht erfolgreich. Fehler.
HINWEIS : Ich habe vor diesem einen parallelen Thread erstellt hier .
dieses PEAR-Tool gefunden. Sieht gut aus. Also habe ich die Dokumentation gelesen, wie ich es für mein Setup aus verschiedenen Quellen installieren kann, und habe es ausgeführt. Zuerst habe ich das html Ausgabeformat verwendet. Groß! Viele Dokumente mit einem Index, bla bla bla. Aber das Beste, was ich in der von mir gewünschten Richtung tun konnte, war: Ich brauche wohl nicht zu sagen, dass dies eine sehr schlechte, super vereinfachte Version dessen ist, was ich wirklich brauche. Fazit: scheitern.
PHP_UML kann jedoch auch XMI generieren. Beeindruckend. Sehr schön. Ich kann meine Beziehungen speichern und sie auf verschiedene Arten sehen und mit anderen Menschen austauschen.
Also habe ich es in Enterprise Architect importiert. Ergebnis: wie bisher nur bei Enterprise Architect, nur keine Klassendiagramme. Nur die Klassen. Soweit ich darüber gelesen habe, kann ich jetzt die Beziehungen manuell erstellen. Episch scheitern.
Irgendwo durch meine Suche nach der Lösung stolperte ich über jemandes Kommentar, der sagte, dass sie ArgoUML verwendeten. Heruntergeladen und installiert. XMI wurde mit einigen Problemen importiert (musste die Version explizit auf 1 setzen). Fehler (siehe Versuch 3).
So eine scheinbar triviale Aufgabe und doch so schwer. Muss ich durch diese ganze Liste gehen und jede Anwendung ausprobieren?
Einer der Wege, dies zu tun, wäre, den in meinem Versuch 2 oder 4 dargestellten Ansatz zu nehmen, und folgen Sie dann den Anweisungen für hier für Enterprise Architect.
Um eine XMI Datei mit PHP_UML zu erstellen:
extension=php_xsl.dll
. pear install PHP_UML
. phpuml -f xmi -o name_of_output_dir
aus. Wenn Sie planen, das generierte XMI später mit älteren Programmen zu verwenden, müssen Sie möglicherweise XMI Version 1 angeben, indem Sie -x 1
hinzufügen. data
direkt unter deinem PEAR-Verzeichnis. Dieses XMI kann später mit Enterprise Architect , ArgoUML und anderen XMI-Tools .
( Bearbeiten : Diese Antwort ist eine Alternative für Leute, die ein UML-Klassendiagramm aus einem PHP-Projekt erzeugen wollen, es erklärt nicht, wie man XMI-Dateien liest)
Ziel
Ich muss eine grafische Darstellung der Klassenbeziehungen sehen, möglicherweise in unterschiedlichen Tiefen und unterschiedlichen Komplexitätsgraden. Auch das wäre schön, wenn die Klassen im Diagramm anklickbar sind. Ich tue nicht muss unbedingt Dokumentation generieren.
Wenn Sie ein Klassendiagramm aus einem PHP-Projekt generieren wollten, fand ich eine bessere Lösung als PHP_UML. Was Sie wahrscheinlich wollen, ist BoUML . Mit dieser Software können Sie einen PHP-Projektordner auswählen und das Reverse Engineering durchführen. Erstellen Sie dann ein Klassendiagramm. Wenn Sie die Klasse ziehen und ablegen, sind die Beziehungen im Gegensatz zu AlgoUML (wenn ich nicht falsch liege). XMI-Dateien sind in diesem Fall nicht mehr nützlich.
Tags und Links php uml class-diagram enterprise-architect argouml