2010-04-27 11 views
9

Ca m'est arrivé de travailler sur un gros programme PHP et j'ai besoin d'un programme (ou script facile à installer) qui dessine un graphique de contrôle de flux d'une application PHP (ie, doit travailler sur plusieurs fichiers PHP). Déjà vu des choses comme Graphviz, pas sûr de ce qui fonctionne pour PHP?Graphique de flux applicatif PHP (ou graphe d'appel de fonction)

Des suggestions?

À la votre!

Répondre

9

Je n'ai jamais utilisé aucun outil capable de faire cela de façon statique (c'est-à-dire à partir de fichiers sources), mais voici un moyen d'obtenir un callgraph lors de l'exécution d'un script/application.


D'abord, vous devez installer le Xdebug extension - sur un serveur de développement/test (ne pas installer sur un serveur de production: il est tout à fait mauvais pour des performances ^^)

Ensuite, vous peut utiliser son profiling features pour générer un fichier .cachegrindout correspondant à l'exécution d'un chargement de page.


Après cela, vous pouvez charger ce fichier .cachegrindout avec KCacheGrind(sous Linux - Je ne pense pas qu'il y ait une version windows); KCacheGrind peut générer des graphiques d'appel à partir de fichiers .cachegrindout.

Et voici un exemple de graphes d'appels que vous pouvez obtenir:

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

(Voici, il a été généré à partir d'un fichier .cachegrindout obtenu lors du chargement d'une page de Dotclear, un logiciel de blogging)

+0

Neat !! Je pourrais l'essayer à la maison sur ma machine virtuelle Linux avec un serveur de test PHP. Merci beaucoup! – Christian

+0

De rien :-) Amusez-vous! –

2

Doxygen peut le faire de façon statique. Juste doxygen -d pour créer un fichier de configuration, puis modifiez-le pour créer des callgraphs.