2

我有两台服务器。

  1. HFS(不区分大小写)文件系统上的雪豹
  2. 带有ext4(区分大小写)文件系统的gentoo linux

在他们两个上我都使用 php 5.3 和最新的 apache2 和最新的 Zend Framework 1.11 版本。

在 Mac OSX 下网站正常工作,在 linux 下我有以下错误:

Fatal error: Uncaught exception 'Zend_Loader_PluginLoader_Exception' with message 'Plugin by name 'Jquery' was not found in the registry; used paths: Dashboard_View_Helper_: /home/ufk/Projects/php-projects/xpo-website/application/modules/dashboard/views/helpers/ xpo_Uploadify_View_Helper_: xpo/Uploadify/View/Helper/ ZendX_JQuery_View_Helper_: ZendX/JQuery/View/Helper/ : /home/ufk/Projects/php-projects/xpo-website/application/helpers/ Zend_View_Helper_: Zend/View/Helper/' in /usr/local/ZendFramework-1.11.3/library/Zend/Loader/PluginLoader.php:412 Stack trace: 
0 /usr/local/ZendFramework-1.11.3/library/Zend/View/Abstract.php(1174): Zend_Loader_PluginLoader->load('Jquery') 
1 /usr/local/ZendFramework-1.11.3/library/Zend/View/Abstract.php(610): Zend_View_Abstract->_getPlugin('helper', 'jquery') 
2 /usr/local/ZendFramework-1.11.3/library/Zend/View/Abstract.php(336): Zend_View_Abstract->getHelper('jquery') 
3 /home/ufk/Projects/php-projects/xpo-website/application/modules/dashboard/views/scripts/game/login.phtml(1): Zend_View_A in /usr/local/ZendFramework-1.11.3/library/Zend/Loader/PluginLoader.php on line 412

我将 ZendX 目录(从 extras/library)复制到位于/usr/local/ZendFramework/library/ZendX/.

我使用以下方法初始化助手:

       ZendX_JQuery::enableView($view);

login.phtml 中导致异常的代码是:

$this->jquery()->enable();

它甚至不应该与代码本身相关,因为在 Mac OS 服务器下它确实可以工作,但我这里也有 ZendX,所以我无法查明问题。

4

2 回答 2

1

现在无法测试,但怀疑您需要在 jQuery 中将这一行中的“q”大写:

$this->jQuery()->enable();

通常,ZF 通过将第一个字母大写来将方法映射到类名,因此类名中的“不寻常”大写 Q 可能是问题所在。

于 2011-02-17T12:04:09.190 回答
1

您必须添加辅助路径。见手册。您可以在引导程序中、使用 Zend_Application、使用 FrontController 插件、在基本控制器类中或直接在视图中执行此操作。

更新:对不起,我误读了你的问题。问题是小“q”。Windows 不区分大小写。这就是它在那里工作的原因。Linux 不是。所以'jQuery.php' 和'jquery.php' 不是同一个文件。

于 2011-02-17T12:04:12.013 回答