[PHP-users 7939] Re: 自分自身のファイル名取得
Mashiki
php-users@php.gr.jp
Wed, 05 Jun 2002 21:35:29 +0900
Mashikiです。
近藤さん、もりかわさん、ご回答ありがとうございます。
近藤さんの返事は私の考えていたところと似ており、「やはり」
と思ったのですが、もりかわさんの回答にはちょっとショックを
受けました。
近藤さんの例で言えば
インクルードされる共通ルーチン(common.php)
// DB アクセスなど 重要な または デバッグポイントになり
// そうな関数やクラスメソッドには、引数でファイル名と
// 行番号をいれています。
function hoge($arg1, ... $argn, $File="", $Line=0)
{
if ($File) $File = basename($File);
......
if(dbg>=3)printf("%s.L%04d → %s.L%04d:
hoge = $hoge <BR>",
$File, $Line, basename(__FILE__),__LINE__);
.....
}
$hogeWrapper = '
function hogeX($arg1, ... $argn) {
return hoge($arg1, ... $argn, __FILE__,__LINE__);
}
';
としておき、
呼び出す側は、
include_once('common.php');
eval($hogeWrapper);
:
:
hogeX($a1, ... $an);
で、呼び出せることになりますよね。
まだ試していませんが、これができれば、私の考えていることの全てです。
ありがとうございました。時間が取れたらちょっと試してみます。
# それはそれで、phpの言語レベルで__CALLER_FILE__, __CALLER_LINE__
# または、スタックトレースの参照機能なんてあるといいですよね