Wie generiere ich ein UML-Diagramm basierend auf vorhandenen Klassen in PHP?
Wie generiere ich ein UML-Diagramm basierend auf vorhandenen Klassen in PHP?
Antworten:
Es gibt auch das PHP UML-Tool von pear .
PHP_UML:
Installieren Sie es in der Befehlszeile über:
$ pear install pear/php_uml
(Dies war früher so, $ pear install pear/php_uml-alpha
aber das Paket ist seitdem stabil.)
Generieren Sie Ihre xmi:
$ phpuml -o project.xmi
pear install PHP_UML-1.6.1
(siehe pear.php.net/package/PHP_UML/download/All oder pear.php.net/package/PHP_UML )
Ich empfehle BOUML nachdrücklich :
phUML ist ein vollautomatischer UML-Klassendiagrammgenerator, der in PHP geschrieben und unter der BSD-Lizenz lizenziert ist. Es ist in der Lage, jeden objektorientierten PHP5-Quellcode zu analysieren und eine geeignete Bilddarstellung der oo-Struktur basierend auf der UML-Spezifikation zu erstellen.
./phuml -r /var/www/my_project -graphviz -createAssociations false -neato out.png
Die beste (Windows) Software, die ich für PHP und UML gefunden habe, ist Sparx Systems Enterprise Architect . Neben einer Vielzahl von Funktionen unterstützt es Folgendes für PHP:
nicht kostenlos (199 $), aber definitiv das Geld wert.
Haben Sie Autodia schon ausprobiert ? Das letzte Mal, als ich es versuchte, war es nicht perfekt, aber es war gut genug.
Es gibt auch php2xmi . Sie müssen ein wenig manuell arbeiten, aber es werden alle Klassen generiert. Sie müssen sie also nur in ein Klassendiagramm in Umbrello ziehen .
Ansonsten ist es ziemlich einfach, ein Diagramm mit Reflexion und Grafik zu erstellen. Ich habe einen Schnipsel hier , dass Sie als Ausgangspunkt verwenden können.
So habe ich es gemacht (direkt vom Code zum PDF-Zeichnen ohne manuelles Zeichnen von irgendetwas):
Hier ist ein Beispiel für eine geeignete Befehlszeile für die Verwendung von fdp zur Ausgabe eines PDF-Diagramms (vorausgesetzt, die durch die XLST-Verarbeitung von argouml-graphviz generierte Punktdatei wird als xmi-model.dot gespeichert):
fdp -Tpdf -Gmaxiter=1000 -Gmindist=0.5 -Gpackmode=node \
-Eweight=0.05 -Elen=1.0 -Eminlen=1.0 -Gsplines=true \
-Goverlap=false xmi-model.dot -oxmi-model.pdf
Alternativ können Sie PHP_UML oder php2xmi anstelle von BOUML verwenden, um den Teil "Reverse Engineering" auszuführen. Das habe ich noch nicht versucht.
(Ich verwende den Ausdruck "Reverse Engineering", weil es den Anschein hat, dass UML-Benutzer diese Wörter verwenden, wenn sie das Extrahieren von Klassen- und Methodeninformationen aus dem Quellcode meinen . Ich würde diese Wörter persönlich als Extrahieren von Informationen aus ausführbaren Binärdateien oder Rohdaten interpretieren Drahtdaten.)
Wenn Sie das Klassendiagramm lieber von Hand zeichnen möchten (anstatt den Computer für die gesamte Zeichnung zu verwenden), können Sie für die Zeichnung entweder BOUML oder ArgoUML verwenden. In diesem Fall hilft die Verwendung der "Reverse Engineered" -Daten über BOUML.
Wenn Sie UML einfach aus Ihren vorhandenen PHP-Klassen generieren möchten, sollten Sie PHPStorm 3.0 IDE in Betracht ziehen. Es ist gut, vorhandenen Code in UML zu replizieren.
Schauen Sie sich die PHP Storm-Funktionsliste an .
Sie können Visual Paradigm für UML verwenden. Dies ist möglicherweise nicht das bestbezahlte Produkt (699 US-Dollar), nur als Option, wenn jemand es versuchen möchte. Es kann Klassendiagramme aus PHP erstellen und umgekehrt, und nicht nur PHP, es gibt eine Reihe von Sprachen, die Sie auswählen können, wie C #, C ++, Ruby, Java, VB.NET, Python, Ziel C, Perl usw. Es gibt auch eine Testversion, die Sie überprüfen können.
Theoretisch können Sie mit PhpStorm Ihre Klassen mithilfe von UML visualisieren. Die Generation ist nicht wirklich großartig, aber Sie können Dinge effektiv umgestalten und zumindest Eltern, Implementierungen, Konstanten, Attribute, Methoden und deren Sichtbarkeit auf eine nette Art und Weise in der Vorschau anzeigen.
Lage
Ich möchte einem Kollegen eine Kommunikation zwischen bereits vorhandenen Komponenten visualisieren.
Prozess mit PHPStorm
https://blog.jetbrains.com/phpstorm/2017/09/uml-diagrams-in-phpstorm-2017-2/
Vorteile
Nachteile
Ergebnis
Wie auch immer, nach einer schmerzhaften Arbeitsstunde konnte ich nur nicht verwandte Boxen generieren und musste zusätzliches Programm verwenden, um Beziehungen zu verknüpfen. Wirklich schlecht. Aber ich glaube, sobald es richtig funktioniert, wird es eine großartige Funktion sein, denn wenn sich der Code ändert, werden die Diagramme automatisch aktualisiert!
Verwenden Sie PhpStorm vorerst nicht für UML-Diagramme.
Um ehrlich zu sein, sollten Sie in erster Linie kein UML-Modell aus Code generieren, sondern Code aus UML-Modell;).
Selbst wenn Sie sich in einer seltenen Situation befinden und dieses Reverse Engineering durchführen müssen, wird im Allgemeinen empfohlen, dies von Hand zu tun oder zumindest die Diagramme aufzuräumen, da automatisch generierte UML wirklich schlechte visuelle (= Informationen) aufweist. Wert die meiste Zeit.
Wenn Sie nur die Diagramme erstellen müssen, ist es wahrscheinlich eine gute Sache, sich zu fragen, warum genau? Wer ist das Zielpublikum und was ist das Ziel? Was hat das automatisch generierte Diagramm zu bieten, welcher Code nicht?
Grundsätzlich akzeptiere ich nur eine Antwort auf diese Frage. Es wurde einfach zu groß und unverständlich.
Was wiederum ein Grund ist, überhaupt mit UML zu beginnen, anstatt mit dem Codieren zu beginnen;) Es heißt Analyse und ist rückläufig, weil jeder zweite Geschäftsmann denkt, dass es ein bisschen zu teuer und nicht wirklich notwendig ist.