2010-04-27 13 views
9

Es passiert, dass ich am Ende eines großen PHP-Programms gearbeitet habe und ein Programm (oder einfach zu installierendes Skript) benötige, das ein Flussdiagramm/Aufrufdiagramm einer PHP-Anwendung zeichnet (dh; muss über mehrere PHP-Dateien arbeiten). Habe schon Sachen wie Graphviz gesehen, nicht sicher, welcher für PHP funktioniert?PHP Application Flow Graph (oder Funktionsaufruf)

Irgendwelche Vorschläge?

Prost!

Antwort

9

Ich habe noch nie ein Werkzeug verwendet, das kann das statisch (d. H von Quelldateien), aber hier ist eine Möglichkeit, einen Callgraph beim Ausführen eines Skripts/Anwendung zu erhalten.


Zuerst müssen Sie die Xdebug extension installieren - auf einer Entwicklung/Testserver (nicht installieren es auf einem Produktionsserver: es für Aufführungen ^^ ziemlich schlecht)

Dann Sie kann seine profiling features verwenden, um eine .cachegrindout Datei zu generieren, die der Ausführung eines Seitenladevorgangs entspricht.


Danach können Sie diese Datei mit .cachegrindoutKCacheGrind(auf einem Linux - ich glaube nicht, gibt es eine Windows-Version) laden; KCacheGrind kann Call-Graphen aus .cachegrindout Dateien generieren.

Und hier ist ein Beispiel für callgraph Sie bekommen können:

KCacheGrind : Callgraph exported as an image http://extern.pascal-martin.fr/so/kcachegrind/kcachegrind-2-small.png

(Hier ist, ist es aus einer .cachegrindout Datei erhalten erzeugt worden ist, während eine Seite der Dotclear Laden, eine Blogging-Software)

+0

Ordentlich !! Ich könnte dies zu Hause auf meinem Linux-VM mit einem Test-PHP-Server versuchen. Vielen Dank! – Christian

+0

Gern geschehen :-) Viel Spaß! –

2

Doxygen kann es statisch tun. Einfach doxygen -d, um eine Konfigurationsdatei zu erstellen, und sie dann bearbeiten, um Anrufgraphen zu erstellen.