Ajuca
AJUCA necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.
Receta rápida para visualizar un grafo de dependencias en PHP, como el que acompaña a este post pincha sobre la imagen para hacer zoom sobre ella). Se trata del grafo de dependencias PHP de la aplicación Babelium Project, pero piensa que el objetivo es aprender a generar un grafo como éste de cualquier aplicación que te interese.
En concreto, queremos ver gráficamente qué ficheros incluyen a qué otros con include, require o require_once). Para ello, haremos uso de la extensión “inclued” sí, al parecer es un juego con las letras de include).
$ sudo pear install inclued-beta
Configuramos a continuación el fichero php.ini para activar la extensión, añadiendo esta línea
extension=inclued.so
y en la parte inferior del mismo fichero, una variable de configuración:
[inclued] inclued.enabled = On
Ahora reiniciamos Apache para que coja los cambios:
$ sudo /etc/init.d/apache2 restart
Editamos la página inicial index.php o similar) de la aplicación de la queremos obtener el grafo, y añadimos al final lo siguiente:
// File to store the inclued information $fp = fopen('/tmp/wp.ser', 'w'); if $fp) { $clue = inclued_get_data(); if $clue) { fwrite($fp, serialize($clue)); } fclose($fp); }
Esto generará un fichero /tmp/wp.ser con información serializada de los includes y requires que carga index.php y sus ficheros dependientes es decir, el análisis se hace de forma recursiva)
Sólo falta un paso: usar graphviz para generar un fichero .dot que luego podremos convertir a .png con la utilidad dot.
# creamos el dot $ php graphviz.php -i /tmp/wp.ser -o wp.dot # lo convertimos a png $ dot -Tpng -o inclued.png wp.dot