K4750.NET

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

6.参考