PHP拡張「inclued」のセットアップまとめ
「WordPressのテンプレートファイルのロード順および呼び出し階層」にて使用した、PHP拡張「inclued(Inclusion hierarchy viewer)」のセットアップ手順をまとめておく。
1.PECLコマンドのインストール
PECL(PHP Extension Community Library)をインストールするための準備を行う。
# aptitude install make
# aptitude install php5-dev
# aptitude install php-pear
2.incluedのインストール
# pecl install channel://pecl.php.net/inclued-0.1.3
...
Installing '/usr/lib/php5/20090626/inclued.so'
install ok: channel://pecl.php.net/inclued-0.1.3
configuration option "php_ini" is not set to php.ini location
You should add "extension=inclued.so" to php.ini
3.php.iniの変更
/etc/php5/apache2/php.ini
に以下を追記する。
extension=inclued.so
inclued.enabled=On
inclued.dumpdir=/tmp
4.incluedファイルの生成
本サイトの場合はWordPressのホームページ(http://www.k4750.net/index.php)にアクセスすると、サーバ上の/tmpディレクトリに「inclued.*.*」というファイルが生成される。
5.incluedファイルの解析
呼び出し階層を見たい場合は、以下のファイル(inc.php)を作成し(「inclued.26144.1」と「/…/index.php」は環境に応じて読み替えてください)、
<?php
$i = unserialize(file_get_contents("/tmp/inclued.26144.1"));
function inc($fromfile, $idx) {
global $i;
foreach ($i['includes'] as $j) {
if ($j['fromfile'] == $fromfile) {
printf("%s%d: %s (%s)n", $idx, $j['fromline'], $j['opened_path'], $j['operation']);
inc($j['opened_path'], $idx.' ');
}
}
}
inc('/…/index.php', '');
?>
phpコマンドを実行する。
$ php inc.php