mar 17 2012

Visualizando un grafo de dependencias en PHP

Published by at 2:40 pm under Devel,PHP,SysAdmin

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

3 responses so far

3 Responses to “Visualizando un grafo de dependencias en PHP”

  1. […] Ésta entrada la hemos publicado también en DiarioLinux.com marzo 16th, 2012 | Categoría: General, […]

  2. […] Security By Default¿Ya participaste de la Encuesta de Usuarios de Ubuntu? – Usemos LinuxVisualizando un grafo de dependencias en PHP – Diario LinuxMeneameBitacorasFacebookTwitterEntradas relacionadas:Lo mejor de mi RSS del 5 al 11 de marzoLo mejor […]

  3. Carloson 27 abr 2012 at 1:53 pm

    Excelente, es de mucha utilidad por la información que proporciona.
    Muchas gracias por la info.
    Saludos.

Trackback URI | Comments RSS

Leave a Reply


6 − = uno

« Back to text comment