无法重新声明类Zend_Loader_Autoloader

3

我正在使用Zend Debugger来调试基于Zend Framework构建的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时已经遇到过这个错误。糟糕的是,我还没有解决这个问题... 在测试时,我的应用程序没有出现任何错误。 - Keyne Viana
当我跳过它时,它会终止我的调试会话。因此,我必须先解决这个问题。 - sanders
我建议你看调试器,而不是代码,这些错误不仅出现在自动加载程序中。例如,看看这个链接: http://zend-framework-community.634137.n4.nabble.com/Using-Zend-Studio-5-5-0-Debugger-td644517.html http://markmail.org/message/xyyntiwkfja2awya我从未见过这些问题的解决方案。 - Keyne Viana
3个回答

3

如果您正在使用Zend服务器,请关闭Zend Optimizer。


2
也许你在某个地方使用了include()或require()函数引入了这个文件,而不知道它已经被引入。尝试将以下代码放在Autoloader.php文件的顶部:
if (!isset($GLOBALS['zend_autoloader_loaded'])) {
    $GLOBALS['zend_autoloader_loaded'] = true;
}
else {
    print_r(debug_backtrace());
    die;
}

跟踪信息将显示 Autoloader.php 第二次被要求的位置。

1

也许你正在使用Zend Server - 我认为它默认包含了这个功能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接