【问题标题】:Cannot redeclare class Zend_Loader_Autoloader无法重新声明 Zend_Loader_Autoloader 类
【发布时间】:2011-03-22 20:32:18
【问题描述】:

我正在使用 Zend Debugger 来调试基于 Zend 框架构建的 php 应用程序。 目前我正在运行 1.10.6 版本。 调试我的应用程序时出现此错误:

Compile Error: /var/www/Zend/ZendFramework-1.10.6/library/Zend/Loader/Autoloader.php line 36 - Cannot redeclare class Zend_Loader_Autoloader

这只是 Zend 框架中的一个错误,还是与我的 application.php 中的错误配置有关?

$paths = array(

    realpath(dirname(__FILE__).'/../library'),
    '.',
);
*/


defined('APPLICATION_PATH') 
    or define('APPLICATION_PATH', realpath(dirname(__FILE__).'/../application'));
defined('APPLICATION_ENV')
    or define('APPLICATION_ENV', 'development');

set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH.'/../library'),
)));    


//require_once('Zend/Loader/Autoloader.php');   
require_once('Zend/Application.php');

$application = new Zend_Application(
    APPLICATION_ENV,
    APPLICATION_PATH.'/configs/events.ini'  
);

$application->bootstrap()->run();

【问题讨论】:

  • 可能是 Zend Debugger 的配置出错了。在测试 Zend Debugger 时,我已经遇到了这个错误。不好的是我还没有解决这个问题……测试时,我的应用程序没有错误。
  • 当我跳过它时它会终止我的调试会话。所以我必须先解决这个问题
  • 我建议你看的是调试器,而不是代码,这个错误不仅发生在自动加载器上。例如,看看这个:zend-framework-community.634137.n4.nabble.com/…markmail.org/message/xyyntiwkfja2awya我已经看到这个问题的解决方案了。

标签: php zend-framework zend-studio zend-debugger


【解决方案1】:

也许您在不知情的情况下在某处包含()或要求()-ing 文件。尝试将此代码粘贴在 Autoloader.php 的顶部:

if (!isset($GLOBALS['zend_autoloader_loaded'])) {
    $GLOBALS['zend_autoloader_loaded'] = true;
}
else {
    print_r(debug_backtrace());
    die;
}

跟踪将指示第二次需要 Autoloader.php 的位置。

【讨论】:

    【解决方案2】:

    也许您使用 Zend Server - 我认为默认情况下包含此功能。

    【讨论】:

      【解决方案3】:

      如果您使用的是 zend 服务器,请关闭 zend 优化器

      【讨论】:

      • 谢谢!这就是给我的。
      猜你喜欢
      • 1970-01-01
      • 2013-08-07
      • 2023-03-29
      • 2016-02-24
      • 2018-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多