Zend Framework无法使用Autoloader重新声明类错误

时间:2012-02-10 15:20:57

标签: zend-framework

看似随意(我不想说这个词),当Autoloader尝试按需加载时,我在Zend Framework 1.11下的各种“Db”类中遇到以下错误:

<小时/> 致命错误:无法在 224 C:\ www \ Zend \ Db \ Table \ Select.php 中重新声明类Zend_Db_Table_Select
致命错误:访问未声明的静态属性: 0

未知中的Zend_Db_Table_Abstract :: $ _ writeClosed

Zend Framework的唯一部分我明确地有一个“require”行是Zend Autoloader,所以我不知道为什么或如何重新声明这些类:​​

require_once('C:/www/Zend/Loader/Autoloader.php');
Zend_Loader_Autoloader::getInstance();

更糟糕的是,正如我所说,这似乎是随机发生的。将对各种自动加载的类方法进行大量调用,然后(看似)不会出现此错误。阻止错误继续重复的唯一方法是重新启动整个Web服务器。然后回到Zend Autoloader的俄罗斯轮盘游戏。

我真的把头发拉到这里,希望有人知道会发生什么。我需要尽快在多个系统上部署此应用程序,但不能告诉管理员每当发生此错误时重新启动整个服务器。 :(

2 个答案:

答案 0 :(得分:1)

这可能会有所帮助。

确认您没有加载Zend Library两次而不想这样做。

即。除了你自己的应用程序加载器之外,检查/etc/php.ini或等效文件是否也不是以某种方式加载Zend库。

此处的提示是警告表示您正在尝试重新声明该课程。

这指向已经以某种方式预装的课程。

同时验证任何包含使用绝对路径,而不是相对路径。

答案 1 :(得分:0)

删除application.ini中的库路径:)