2012-09-04 104 views
3

如何结合zend框架和Codeigniter?如何结合Zend框架和Codeigniter?

我有两个应用程序,一个是zend,另一个是codeigniter,是否可以将两个框架结合到一个项目中?如果是这样,那么如何组合这两个框架以及这个文件的结构是什么?

谢谢你的帮助。

+1

解释一下你的 “联合” 的意思。你想达到什么目的?为什么? – KTastrophy

+0

我想在一个应用程序中运行这两个框架 – devrez

回答

4

当然这是可能的。

我曾经在一个项目中使用过Zend + CodeIgniter。

以下是你需要做的:

复制粘贴到您的Zend文件夹(库)到笨或反之亦然图书馆复制笨库到Zend库文件夹。

2.如果笨,把它用$this->load->library('Zend', '{anything here}') 或Zend的使用autoloader

问题,你将面对(这是我面临的):

  1. 认证

Zend使用使用$ _SESSION的Zend Auth命名空间。鉴于CI不使用$ _SESSION,但它有自己的内置系统。使用Zend和(假设你的整个应用程序只在同一个域中)查看它存储的身份,直接通过CI检查$ _SESSION并分配CI cookie。这里是what happened with me and check the solution

  • 安全和窗体
  • 两个CI和Zend具有形式不同的库,其中加载Zend库的类不使用CI的表格(CI下),只要记住这是一个拇指规则。因此,您需要策略您将如何实施它,Zend在CI或CI上的Zend。不要在CI表单中使用Zend的验证器(我知道没有人会这样做,但是,一旦我做了,任何人都可以做到!不要做)。使用相同的安全库,你将用于表格库的使用

    就我个人而言,我的项目做了很多(经过大量研究后),它是:Zend上的CI,我有权使用Zend Auth。

    有问题? :)

    +0

    更新:CodeIgniter 3将允许开发人员使用$ _SESSION变量 –

    +0

    请随时编辑答案。 – Karma

    3

    就组合框架而言,通常最好坚持一个框架的意识形态。否则,为什么要使用该框架?保存特定的功能块。对于CI和Zend Framework来说,Zend实际上被构建为更加模块化(无论如何它本质上都是一个库集合),并且与其他方式相比,将更容易并入到CI中。

    这是使用PHP框架的许多人已经解决的常见“问题”。

    一个快速谷歌打开了以下内容:

    http://viraksun.com/tutorials/integrate-zend-library-in-code-igniter/

    http://www.beyondcoding.com/2008/02/21/using-zend-framework-with-codeigniter/

    http://www.gotphp.com/codeigniter-with-zend-framework-libraries/54312/


    更直接地回答你的问题:

    您可以简单地将“Zend”文件夹(来自Zend_Download_Folder/library) 放置在主“libraries”文件夹或您的个人应用程序/库文件夹中。

    然后,从任何控制器内使用装载器类来加载你想要使用的任何Zend类。

    例如,使用Zend_Pdf,做在你的控制器如下:

    //load it 
    $this->load->library('Zend/Pdf'); 
    
    //use it 
    $zendPdf = new Zend_Pdf(); 
    $zendPdf->someMethod(); 
    

    来源:

    http://codeigniter.com/user_guide/general/creating_libraries.html

    http://codeigniter.com/user_guide/libraries/loader.html

    +0

    我想将Zend包括到CI中,并且出现“遇到错误,不存在的类:mailmerge”。在这一行的某处$ this-> load-> library('Zend/Service/Livedocx/MailMerge'); php.ini中的包含路径是否必须对此做任何事情?这真是把我的大脑混合起来。 –