include/require系ステートメントの戻り値を使って、どのファイルが実際に読まれたか知る
..
Tipsです。
includeするのにいちいちフルパスで読み込みたくない場合、include_pathを山のように定義してしまう場合があります(パフォーマンス上よくないそうな)。その場合、実際にどのソースファイルが読み込まれたのか分からなくなる場合があります。特に同名のソースファイルを複数扱うような場合(あんまりないとは思いますが)とか、読んでるのか読んでないのか分からないケース(笑)など、実際に読み込んだソースファイルの場所が分かると便利です。
マニュアルによるとinclude/require系のステートメントは読み込んだ先のソースファイルでreturnした値を戻り値として返します。
なら読み込むべきソースの最後でそのソースファイルのパスを返してやれば実際に(エラーなく読み込まれた場合は、ですが)読み込まれたパスをコールした側で取得できるはず。
ソースはこんな感じで。
[/var/htdocs/hoge.php :読み込まれる方]
<?php
class Hoge
{
....
}
return __FILE__; ....<--これを追加
?>
[/var/htdocs/main.php :読み込む方]
<?php $ret = include( 'hoge.php' ); print $ret; // --> /var/htdocs/hoge.php ?>結果をログファイルなどに吐き出すようにすれば、幸せになれる?
XDebugとか入ってたらプロファイラで確認できるのでしょうが、ちょっとしたデバッグとかには有効かもしれません。