PHPを触り始めて、結構な年月がたつのですが、こんな便利な関数があるとは、今更ながら、知りませんでした。恥ずかしいというか、人生の無駄をしてきたような。。。
それが、get_included_files関数です。何が便利かというと、どのファイルが読み込まれているのか、出力してくれます。今までは一から、検索をかけたり、読み込まれている部分を追ったりしてました。
get_included_files — include または require で読み込まれたファイルの名前を配列として返す
PHPマニュアルより引用
下記はサンプルになります。get.phpがget1.phpを読み込み、get1.phpがget2.phpを読み込み、echoしています。普段はこんなechoをすることはありませんが、フレームワークを用いるとき、index.phpにアクセスし、複数ファイルを起動させることはよくあります。
get.php
<?php require_once("get1.php"); $included_files = get_included_files(); foreach ($included_files as $filename) { echo "$filename\n"; }
get1.php
<?php require_once("get2.php");
get2.php
<?php echo "test\n";
これを実行します。
結果は
$ php get.php test /Users/satoyuta/workspace/test/get.php /Users/satoyuta/workspace/test/get1.php /Users/satoyuta/workspace/test/get2.php
どのソースコードを読み込んで、くれたかが一目でわかります。オープンソースやフレームワークを用いる時、人のソースコードを読むときなど大活躍してくれそうです。
もっと、早く知っておけばよかったなと思いました。
コメント