Patrice Ferlet
Patrice Ferlet
Créateur de ce blog.
Publié le sept. 10, 2008 Temps de lecture: 2 min

Me suivre sur Mastodon

Générer un graph pseudo UML PHP

Je vous ai parlé de mon petit outil, GTU (Graphlanguage To UML), qui permet de définir un modèle UML basique et de le reproduire en graph via Graphviz. Je me suis amusé à faire un autre script qui génère du GTU depuis PHP… En passant j’ai corrigé et amélioré GTU pour qu’il gère les classes abstraites, les interfaces…

Bref, hier soir j’ai tenté de parser des répèrtoires de Copix, notamment le core complet ce qui génère un graph très lourd, et simplement des paquets comme le répèrtoire “db”. Le résultat est assez interessant:

Cliquez ici pour voir la version large… sachez qu’à la base le diagramme se trouvait en SVG et que je l’ai simplement converti.

Bref, le scripts GTU (perl) est ici: -http://www.metal3d.org/tools/gtu-0.1.pl Pour l’utiliser:

mv gtu-1.0.pl gtu
chmod +x gtu-1.0.pl
./gtu fichier.gtu <FORMAT DE SORTIE, par exemple svg, png, pdf...> [optionnellement: LR ou BT ou TB ou RL pour changer la disposition du graph]

GTU gère les classes de manière simple, créz un fichier test.gtu:

[classA]
//classe abstraite
+ varpublic
- varprivée
\# varprotégée

[(A)classB]
//classe abstraite
+ varpublic
- varprivée
\# varprotégée

[(I)classC]
//Interface
+ varpublic
- varprivée
\# varprotégée



[(IA)classD]
//Interface abstraite ????
+ varpublic
- varprivée
\# varprotégée


[packageA::(I)classE]
//Interface dans un package nommé packageA
+ varpublic
- varprivée
\# varprotégée


#Liaisons:
#héritage
classC --> classB

#implémentation
classA --> classC 


#point d'entrée
Utilisateur => classA

En ce qui concerne mon parser PHP pour faire du reverse engeneering, je vous le passerai par la suite, pour le moment il est encore plus imaintenable que gtu :)

comments powered by Disqus