代码之家  ›  专栏  ›  技术社区  ›  Kemo

带有Kohana php 3的Zend框架

  •  5
  • Kemo  · 技术社区  · 15 年前

    我已经将zend library文件夹放入应用程序的classes文件夹中,并将所有文件和文件夹重命名为小写(使用ant renamer)。

    当我调用zend_feed,而不是加载/classes/zend/feed.php时,Kohana从我的服务器加载zend。 share\ZendFramework\library\Zend\ (Zend服务器),所以我得到一个 Cannot redeclare class Zend_Uri_Http 错误。

    ZF版本;1.10 Kohana版本:Github提供的最新文件

    编辑: https://github.com/kolanos/kohana-zend

    3 回复  |  直到 13 年前
        1
  •  5
  •   Pomyk    15 年前

    Kohana Autoloader需要小写文件名。您可以注册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/

        2
  •  0
  •   antpaw    15 年前

    类名称与ko3中的文件路径匹配非常重要。例如,你的饲料类在里面 /classes/zend/feed.php 所以它必须被命名 class Zend_Feed { 如果不喜欢,可以创建此文件 /classes/feed.php 这样做 class Feed extends Zend_Feed { }

        3
  •  0
  •   nex2hex    15 年前

    正如Pomyk所说,尝试使用两个自动加载器: http://www.php.net/manual/en/function.spl-autoload-register.php

    重新命名类是不好的实践,因为更新和功能支持非常困难