Ejemplo que implementa inclued en una aplicación

Este ejemplo muestra el proceso de implementar inclued en una apliación existente, viendo los resultados.

Ejemplo #1 Obtener la información dentro de la aplicación misma de PHP (función)

<?php
// Archivo donde almacenar la información de inclued
$fp fopen('/tmp/wp.ser''w');
if (
$fp) {
    
$clue inclued_get_data();
    if (
$clue) {
        
fwrite($fpserialize($clue));
    }
    
fclose($fp);
}
?>

Ahora que existe alguna información es hora de hacer que tenga sentido en la forma de un gráfico. La extension inclued incluye un archivo PHP llamado gengraph.php que crea un archivo dot que requiere la biblioteca » graphviz. Sin embargo, en esta forma no se requiere.

Ejemplo #2 Ejemplo de uso de gengraph.php

Este ejemplo crea una imagen llamada inclued.png que muestra la información de inclued.

# Primero, creamos el archivo dot
$ php gengraph.php -i /tmp/wp.ser -o wp.dot

# Lo siguiente, creamos la imagen
$ dot -Tpng -o inclued.png wp.dot

Ejemplo #3 Listar información mediante volcados (configuración)

Cuando se usa la directiva inclued.dumpdir, los archivos (incluidos rastros) son volcados con cada petición. Aquí hay una manera de listar esos archivos, y deserializarlos (unserialize()).

<?php
$ruta 
ini_get('inclued.dumpdir');
if (
$ruta && is_dir($ruta)) {

    echo 
"Ruta: $ruta"PHP_EOL;

    
$inclues = new GlobIterator($ruta DIRECTORY_SEPARATOR 'inclued*');

    if (
$inclues->count() === 0) {
        echo 
'No hay rastros hoy'PHP_EOL;
        exit;
    }

    foreach (
$inclues as $inclue) {

        echo 
'Archivo inclued: '$inclue->getFilename(), PHP_EOL;

        
$data file_get_contents($inclue->getPathname());
        if (
$data) {
            
$inc unserialize($data);
            echo 
' -- nombre de archivo: '$inc['request']['SCRIPT_FILENAME'], PHP_EOL;
            echo 
' -- número de inclusiones: 'count($inc['includes']), PHP_EOL;
        }
        echo 
PHP_EOL;
    }
} else {
    echo 
'Hoy estoy lleno de rastros.'PHP_EOL;
}
?>

El resultado del ejemplo sería algo similar a:

Ruta: /tmp/inclued
Archivo inclued: inclued.56521.1
 -- nombre de archivo: /Users/philip/test.php
 -- número de inclusiones: 1

Archivo inclued: inclued.56563.1
 -- nombre de archivo: /tmp/none.php
 -- número de inclusiones: 0

Archivo inclued: inclued.56636.1
 -- nombre de archivo: /tmp/three.php
 -- número de inclusiones: 3