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($fp, serialize($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