PHP spl_autoload:如何确定自动加载功能请求者

时间:2013-11-20 18:00:10

标签: php spl-autoload-register spl-autoloader

spl_autoload_register注册的函数是否有办法知道调用它的源文件/类/方法?我希望能够在找不到类时输出有用的错误,因此我知道需要更新哪个源文件。例如:

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;
}

2 个答案:

答案 0 :(得分:1)

这就是stack trace的作用。它向您显示导致您的错误的事件链(并且可以提供类,行号等详细信息)

答案 1 :(得分:0)

尝试var dumping debug_backtrace()以查看它返回的数组以及它是否有帮助。

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

    ...