Pregunta

Estoy buscando una utilidad similar a gprof que generará un gráfico de llamadas para PHP código. Preferiría 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 la salida de texto sin formato.

¿Alguien sabe de alguna herramienta que pueda hacer esto?

¿Fue útil?

Solución

Definitivamente probaría Doxygen . Tiene soporte para 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.

Ejemplo de gráfico de llamada de doxygen

Otros consejos

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

Es posible que desee echar un vistazo a la extensión Xdebug : trae perfilado a PHP, y genera archivos similares a 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 cobertura de código al ejecutar pruebas unitarias
Hace algún tiempo, PHPUnit pudo generar algunos gráficos de llamada con graphviz; Sin embargo, ya no encuentro esa opción :-(


EDITAR: es la primera vez que escucho sobre él, pero hay un proyecto llamado phpCallGraph que podría ser capaz de ayudarte también ... y parece que hay trabajo en curso, si miro es registro de cambios

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

Xdebug puede generar rastros de función . 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 funciones en una representación visual, aunque no debería ser tan difícil de hacer.

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

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

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

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

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

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top