2010-04-27 20 views
9

Ocurre que he terminado trabajando en un gran programa PHP y necesito un programa (o script fácil de instalar) que dibuja un control de flujo/gráfico de llamada de una aplicación PHP (es decir, debe trabajar sobre múltiples archivos PHP). ¿Ya viste cosas como Graphviz, no estoy seguro de cuál funciona para PHP?PHP Application Flow Graph (o función call graph)

¿Alguna sugerencia?

¡Salud!

Respuesta

9

nunca he utilizado ninguna herramienta que puede hacer eso de forma estática (es decir, desde archivos de origen), pero aquí es una manera de conseguir un callgraph al ejecutar un script/aplicación.


En primer lugar, es necesario instalar el Xdebug extension - en un servidor de desarrollo/prueba (no lo instale en un servidor de producción: es bastante malo para actuaciones ^^)

A continuación, puede usar su profiling features para generar un archivo .cachegrindout correspondiente a la ejecución de una carga de página.


Después de eso, se puede cargar el archivo con .cachegrindoutKCacheGrind(En Linux - Creo que no hay una versión de Windows); KCacheGrind puede generar gráficos de llamadas desde los archivos .cachegrindout.

Y aquí es un ejemplo de callgraph puede obtener:

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

(Esto es, se ha generado a partir de un archivo .cachegrindout obtenido durante la carga de una página de Dotclear, un software de blogs)

+0

Neat !! Podría probar esto en casa en mi máquina virtual de Linux con un servidor PHP de prueba. ¡Muchas gracias! – Christian

+0

De nada :-) Diviértete! –

2

Doxygen puede hacerlo estáticamente. Simplemente doxygen -d para crear un archivo de configuración, luego edítelo para crear los callgraphs.