Ajuca


Le invitamos a unirse a nuestra comunidad, puede ser parte de nuestro equipo enviando un artículo.

 

 

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

Escribir un comentario


Código de seguridad
Refescar


Siguenos:


 
 

Ads Patrocinio Ajuca

Patrocine Ajuca: contrate por sólo 20€


Suscriberse a Newsletter

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

Buscar

¿Quien está online?

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

Formulario de Acceso

Filtro de Categorías

Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Ver política