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