例
PHP Manual

inclued をアプリケーションに組み込む例

この例では、inclued を既存のアプリケーションに組み込んで結果を見る方法を説明します。

例1 PHP アプリケーション自身 (関数) 内のデータの取得

<?php
// inclued の情報を保存するファイル
$fp = fopen('/tmp/wp.ser', 'w');
if (
$fp) {
    
$clue = inclued_get_data();
    if (
$clue) {
        
fwrite($fp, serialize($clue));
    }
    
fclose($fp);
}
?>

データが取得できたら、それを何らかの形式で図にしてみたいと思われることでしょう。 inclued 拡張モジュールには gengraph.php という PHP ファイルが組み込まれています。 このファイルは、» graphviz ライブラリで使える dot ファイルを作成します。 しかし、これは必須ではありません。

例2 gengraph.php の使用例

この例は、inclued のデータを示す画像 inclued.png を作成します。

# まず dot ファイルを作成します
$ php gengraph.php -i /tmp/wp.ser -o wp.dot

# そして画像を作成します
$ dot -Tpng -o inclued.png wp.dot

例3 inclued のダンプデータの一覧

inclued.dumpdir を使うと、ファイル (include 情報) がリクエストのたびに出力されます。 それらの一覧を取得して unserialize() する例です。

<?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


例
PHP Manual