2013-11-20 31 views
1

有沒有辦法讓spl_autoload_register註冊的函數知道調用它的源文件/類/方法?我希望能夠輸出一個有用的錯誤,當一個類沒有找到,所以我知道哪個源文件需要更新。例如:PHP spl_autoload:如何確定自動加載函數請求程序

spl_autoload_register(function($className) 
{ 
    $classFile = 'include/' . $className . '.php'; 
    if (!is_readable($classFile)) 
    { 
     echo 'Could not load ' . $className . ' requested by ' . $source; 
     // how to figure out $source -----------------------------^^ 
     return false; 
    } 

    include $classFile; 
    return false; 
} 

回答

1

這就是stack trace所做的。它向您顯示導致您錯誤的事件鏈(並且可以提供類,行號等詳細信息)

0

嘗試var dumping debug_backtrace()以查看它返回的數組以及是否可以提供幫助。

spl_autoload_register(function($className) 
{ 
    var_dump(debug_backtrace()); 

    ...