【问题标题】:PHP spl_autoload: how to determine the autoload function requestorPHP spl_autoload:如何确定自动加载函数请求者
【发布时间】:2013-12-04 21:19:53
【问题描述】:

有没有办法让 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;
}

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-30
        • 1970-01-01
        • 2016-04-15
        • 2011-01-19
        • 2010-12-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多