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.
Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado
 

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

Pin It

No estás registrado para postear comentarios


Siguenos:


 
 

Suscriberse a Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Buscar

¿Quien está online?

Hay 206 invitados y ningún miembro en línea

Formulario de Acceso

Filtro de Categorías