我已将Zend库文件夹放入应用程序的classes文件夹中,并将所有文件和文件夹重命名为小写字母(使用Ant Renamer)。
当我调用Zend_Feed时,Kohana会从我的服务器share\ZendFramework\library\Zend\
(Zend Server)加载Zend,因此我会收到一个Cannot redeclare class Zend_Uri_Http
错误。
ZF版本:1.10 Kohana版本:通过GitHub获取的最新文件
我已将Zend库文件夹放入应用程序的classes文件夹中,并将所有文件和文件夹重命名为小写字母(使用Ant Renamer)。
当我调用Zend_Feed时,Kohana会从我的服务器share\ZendFramework\library\Zend\
(Zend Server)加载Zend,因此我会收到一个Cannot redeclare class Zend_Uri_Http
错误。
ZF版本:1.10 Kohana版本:通过GitHub获取的最新文件
Kohana自动加载器要求使用小写文件名。您可以注册Zend和Kohana的自动加载器,这样就可以正常工作。
在引导程序中,您需要:
/**
* Enable the Kohana auto-loader.
*
* @see http://docs.kohanaphp.com/features/autoloading
* @see http://php.net/spl_autoload_register
*/
spl_autoload_register(array('Kohana', 'auto_load'));
Zend自动加载程序应该放在之前还是之后(我不知道这是否有区别)。找到一篇文章介绍了如何做到这一点:http://www.beyondcoding.com/2009/10/29/using-zend-framework-1-8-with-kohana/
在 ko3 中,你的类名必须与文件路径匹配非常重要。例如,你的 feed 类位于 /classes/zend/feed.php
中,因此它的名称必须为 class Zend_Feed {
。如果你不喜欢这个,你可以创建这个文件 /classes/feed.php
并做如下操作:class Feed extends Zend_Feed { }
正如Pomyk所说,尝试使用两个自动加载器:http://www.php.net/manual/en/function.spl-autoload-register.php
重命名类是一种糟糕的做法,因为更新和功能支持都非常困难。