Question

Je recherche un utilitaire similaire à gprof qui générera un graphe d'appel pour PHP code. Je préférerais quelque chose qui puisse produire une sortie graphique, ou au moins une sortie de texte interprétable par GraphViz ou similaire, mais je vais me contenter d'une sortie en texte brut.

Quelqu'un connaît-il un outil capable de le faire?

Était-ce utile?

La solution

Je voudrais absolument essayer Doxygen . Il supporte PHP, et les graphes d’appel et d’appelant qu’il crée sont très utiles pour explorer le "code étranger". pour moi précédemment.

Exemple de graphe d'appel doxygen

Autres conseils

Je ne suis pas sûr qu'il existe quelque chose qui puisse analyser le code source écrit en PHP pour le générer ... Mais il y a une possibilité lorsque vous exécutez le code.

Vous voudrez peut-être jeter un coup d'œil à l'extension Xdebug : elle apporte profilant en PHP et générant des fichiers de type callgrind, pouvant être lus avec KCacheGrind sous Linux.

Et celui-ci est capable de générer une sorte de callgraphs.


Il peut également être intégré à PHPUNit pour générer couverture de code lors de l'exécution de tests unitaires
Il y a quelque temps, PHPUnit était capable de générer des graphes d'appel avec graphviz; Je ne trouve plus cette option, cependant: - (

EDIT: c'est la première fois que j'en entends parler, mais il existe un projet appelé phpCallGraph qui pourrait être capable de vous aider aussi ... et il semble qu'il y ait du travail en cours, si je regarde c'est journal des modifications

Comme indiqué précédemment, Doxygen peut générer des graphes d’appel.

Xdebug peut générer des traces de fonction . Celles-ci diffèrent des graphiques de doxygen en ce qu'elles sont générées à partir du code d'exécution, alors que doxygen est généré de manière statique. Je ne connais aucun outil capable de transformer les traces de fonction en représentation visuelle, même si cela ne devrait pas être si difficile à faire.

Il existe également l'extension bytekit , dont la fonction principale est de montrer le bytecode utilisé par le code source php. produire. Cela peut le montrer dans un graphique, qui est essentiellement un graphe d’appel.

Ceci est un sujet ancien - mais au cas où quelqu'un le trouverait utile ....

  • kKCachegrind produira des graphiques d’appel montrant les fils d’exécution réels.

  • PHPCallGraph est assez simple autour de graphviz qui effectue une analyse statique

  • Il y a aussi mon propre effort qui est similaire à PHPCallGraph mais ajoute des informations sur les boucles / structures conditionnelles et fournit une méthode pour ajouter des rappels aux nœuds. Certains exemples de scripts sont fournis avec la boîte à outils - mais vous pouvez également l'intégrer dans vos propres scripts.

Si vous avez besoin de quelque chose d'interactif, consultez le nouveau nWire pour PHP . C'est un plugin Eclipse qui fonctionne avec PDT 2.1 et Zend Studio 7.0.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top