3

如何结合 zend 框架和 Codeigniter ?

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

谢谢你的帮助。

4

2 回答 2

4

当然这是可能的。

我参与过一个项目,我们同时拥有 Zend + CodeIgniter。

这是您需要做的:

1.将您的 Zend 文件夹(库)复制粘贴到 CodeIgniter 的库中,反之亦然,将 CodeIgniter 库复制到 zend 库文件夹中。

2.如果在codeigniter中,调用它使用$this->load->library('Zend', '{anything here}') 或在Zend使用自动加载器

您将面临的问题(我面临的):

  1. 验证

Zend 使用 Zend Auth 命名空间,它使用 $_SESSION。而 CI 不使用 $_SESSION 而是有它自己的内置系统。使用 Zend 并(假设您的整个应用程序仅在同一个域上)查看它存储的身份信息,直接通过 CI 检查 $_SESSION 并分配 CI cookie。这是我发生的事情并检查解决方案

  1. 安全和表格

CI 和 Zend 都有不同的 Forms 库,不要在加载 Zend Library 的类(在 CI 下)中使用 CI 的 Form,只需记住这一点即可。因此,您需要制定策略来实现它,Zend on CI 或 CI on Zend。不要在 CI 表单中使用 Zend 的验证器(我知道没有人会这样做,但是一旦我这样做了,任何人都可以这样做!不要这样做)。使用您将用于表单的相同安全库

就个人而言,我的项目做得很好(经过大量研究之后),它是:Zend 上的 CI,我不得不使用 Zend Auth。

问题?:)

于 2012-09-04T04:19:01.517 回答
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”文件夹或您的个人应用程序/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

于 2012-09-04T04:25:33.183 回答