Example that implements inclued into an application


This example demonstrates the process of implementing inclued into an existing application, and viewing the results.

Пример #1 Getting the data within the PHP application itself (function)

<?php
// File to store the inclued information
$fp fopen('/tmp/wp.ser''w');
if (
$fp) {
    
$clue inclued_get_data();
    if (
$clue) {
        
fwrite($fpserialize($clue));
    }
    
fclose($fp);
}
?>

Now that some data exists, it's time to make sense of it in the form of a graph. The inclued extension includes a PHP file named gengraph.php that creates a dot file that requires the » graphviz library. However, this form is not required.

Пример #2 Example use of gengraph.php

This example creates an image named inclued.png that shows the inclued data.

# First, create the dot file $ php gengraph.php -i /tmp/wp.ser -o wp.dot  # Next, create the image $ dot -Tpng -o inclued.png wp.dot

Пример #3 Listing data via inclued dumps (configuration)

When using the inclued.dumpdir directive, files (include clues) are dumped with every request. Here's one way to list those files, and unserialize() them.

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

    echo 
"Path: $path"PHP_EOL;

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

    if (
$inclues->count() === 0) {
        echo 
'No clues today'PHP_EOL;
        exit;
    }

    foreach (
$inclues as $inclue) {

        echo 
'Inclued file: '$inclue->getFilename(), PHP_EOL;

        
$data file_get_contents($inclue->getPathname());
        if (
$data) {
            
$inc unserialize($data);
            echo 
' -- filename: '$inc['request']['SCRIPT_FILENAME'], PHP_EOL;
            echo 
' -- number of includes: 'count($inc['includes']), PHP_EOL;
        }
        echo 
PHP_EOL;
    }
} else {
    echo 
'I am totally clueless today.'PHP_EOL;
}
?>

Результатом выполнения данного примера будет что-то подобное:

 PATH: /tmp/inclued Inclued file: inclued.56521.1  -- filename: /Users/philip/test.php  -- number of includes: 1  Inclued file: inclued.56563.1  -- filename: /tmp/none.php  -- number of includes: 0  Inclued file: inclued.56636.1  -- filename: /tmp/three.php  -- number of includes: 3