如何结合zend框架和Codeigniter?
我有两个应用程序,一个是zend,另一个是codeigniter,是否可以将两个框架合并到一个项目中?如果是这样,如何组合这两个框架以及它的文件结构是什么?
谢谢你的帮助。
答案 0 :(得分:4)
当然有可能。
我参与了一个项目,我们有一个Zend + CodeIgniter。
以下是您需要做的事情:
1. 将Zend文件夹(库)复制粘贴到CodeIgniter库中,反之将CodeIgniter库复制到zend库文件夹中。
2. 如果在codeigniter中,请使用$this->load->library('Zend', '{anything here}')
进行调用
或者在Zend中使用autoloader
你将遇到的问题(我面临的问题):
Zend使用Zend Auth Namespace,它使用$ _SESSION。虽然CI不使用$ _SESSION,但它有自己的内置系统。使用Zend和(假设您的整个应用程序仅在同一个域中)查看它为身份存储的内容,通过CI直接检查$ _SESSION并分配CI cookie。这是what happened with me and check the solution。
CI和Zend都有不同的表单库,不要在加载Zend Library的类中使用CI表单(在CI下),只需记住它作为一个拇指规则。因此,您需要制定实施策略,Zend on CI或CI on Zend。不要在CI表格中使用Zend的验证器(我知道没有人会这样做但是,一旦我做了,所以任何人都可以做到!不要这样做)。使用与将用于表单的库相同的安全库
就个人而言,我的项目做得很好(经过大量研究后),它是:Zend上的CI,我必须使用Zend Auth。
有问题吗? :)
答案 1 :(得分:3)
就组合框架而言,通常最好坚持一个框架的意识形态。否则,为什么要使用该框架?保存特定的功能。
就CI和Zend框架而言,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”文件夹中,或在您的个人应用程序/库文件夹中。
然后,在任何Controller中使用loader类来加载你想要使用的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