[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__
# または、スタックトレースの参照機能なんてあるといいですよね