php visualization call-graph

¿PHP utilidad de gráfico de llamadas?



visualization call-graph (5)

Estoy buscando una utilidad similar a gprof que generará un gráfico de llamadas para el código PHP. Prefiero algo que pueda producir una salida gráfica, o al menos una salida de texto que pueda ser interpretada por GraphViz o similar, pero me conformaré con una salida de texto sin formato.

¿Alguien sabe de alguna herramienta que pueda hacer esto?


Como ya se señaló, Doxygen puede generar gráficos de llamadas.

Xdebug puede generar trazas de funciones . Estos difieren de los gráficos de doxygen en que se generan a partir del código de tiempo de ejecución, mientras que el doxygen se genera estáticamente. No conozco ninguna herramienta que pueda convertir los rastros de la función en una representación visual, aunque no debería ser tan difícil de hacer.

También está la extensión de bytekit , cuya función principal es mostrar el código de bytekit que generará el código fuente de php. Puede mostrar esto en un gráfico, que es esencialmente un gráfico de llamadas.


Este es un tema antiguo, pero en caso de que alguien lo encuentre útil ...

  • kKCachegrind producirá gráficos de llamadas que muestran los hilos de ejecución reales.

  • phpCallGraph es un análisis bastante simple alrededor de graphviz que realiza análisis estático

  • También tengo mi propio esfuerzo, que es similar a PHPCallGraph, pero agrega información sobre los bucles / estructuras condicionales y proporciona un método para agregar devoluciones de llamadas a nodos. Algunos scripts de ejemplo se incluyen con el kit de herramientas, pero también puede incrustarlos en sus propios scripts.


No estoy seguro de que exista algo que pueda analizar el código fuente escrito en PHP para generar eso ... Pero hay una posibilidad, cuando está ejecutando el código.

Es posible que desee echar un vistazo a la extensión Xdebug : aporta profiling a PHP y genera archivos de tipo callgrind, que se pueden leer con KCacheGrind en Linux.

Y este es capaz de generar algún tipo de callgraphs.


También se puede integrar con PHPUNit, para generar code-coverage al ejecutar pruebas unitarias.
Hace algún tiempo, PHPUnit pudo generar algunos gráficos de llamadas con graphviz; Aunque ya no encuentro esa opción :-(

EDITAR: es la primera vez que lo escucho, pero hay un proyecto llamado phpCallGraph que podría ayudarlo también ... y parece que hay trabajo en marcha, si veo que es un changelog de changelog


Si necesita algo interactivo, consulte el nuevo nWire para PHP . Es un complemento de Eclipse que funciona con PDT 2.1 y Zend Studio 7.0.


Definitivamente probaría el Doxygen . Es compatible con PHP, y los gráficos de llamadas y los gráficos de llamadas que crea han sido muy útiles para explorar el "código extranjero" para mí anteriormente.