downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

Funciones de inclued> <Ejemplos
Last updated: Fri, 20 May 2011

view this page in

Ejemplo que implementa inclued en una aplicación

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

Example #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.

Example #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 graphviz.php -i /tmp/wp.ser -o wp.dot

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

Example #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



add a note add a note User Contributed Notes Ejemplo que implementa inclued en una aplicación
admin at eexit dot net 05-Aug-2010 03:14
The new gengraph.php has « -t » parameter set to « includes » by default. Don't forget to specify it to « classes » for most of all projects.

Since PHP 5.3, namespace operators are stripped by Graphiz when the graph is generated. Add the following tips to escape namespace operators:

<?php
// Around line 254
else /* classes */
{
   
$filemap = array();

    foreach(
$data["classes"] as $k => $v) {
       
$class = $v;

   
// Here is the tip to remove namespaces
       
$class['name'] = str_replace('\\', '\\\\', $class['name']);
       
$class['mangled_name'] = str_replace('\\', '\\\\', $class['mangled_name']);

// ...
?>

By the way, if you are looking for an easy way to use inclued, take a look at my library: http://www.eexit.net/projects/inclued.html

 
show source | credits | stats | sitemap | contact | advertising | mirror sites