我想让这个问题成为那些对 ZendFramework 感兴趣的人的指南与其他库/框架的集成。在 StackOverflow 上搜索并没有给出关于该主题的广泛 View 。
问题是:您在当前基于 ZF 的元素中使用了哪些库/框架?基于 ZF 的元素架构的最佳实践是什么?
我不是指任何已经属于采埃孚的组件。请描述您已集成的其他 框架(例如 RuckUsing 、 Smarty 或 Doctrine )。它也适用于任何 GUI 框架(也许你使用 CSS 框架),以及 JS 框架(不仅仅是 jQuery 或 prototype ,而是一些高级结构)。
主要要求:它必须是一个 ZendFramework 元素。
描述性能优化的答案将获得额外奖励。
更新
每一个与@BryanM 一样信息丰富的答案都将被考虑获得额外的赏金。
最佳答案
我在 Zend Framework 元素中使用 Doctrine 2。它易于使用并且可以无缝安装。集成它的基本步骤是:
- 编写一个资源插件,使用
application.ini
中的配置选项初始化一个 Doctrine 2 EntityManager。可以在 Benjamin Eberlei 的 DoctrineExtensions 中找到一个例子。 . - 我没有依靠全局注册表 (
Zend_Registry
) 来存储 EntityManager 引用,而是依靠一个简单的依赖注入(inject)解决方案 described here将实例提供给我的 Controller 。 - 我依靠 Doctrine 的事件系统来创建可重复使用的“行为”类来执行更新时间戳或验证数据等操作。
- 我将所有实体和业务对象保存在应用程序的“模型”文件夹中(在它自己的命名空间下),并将其他所有内容保存在我的
library
文件夹中。我大量使用 PHP 5.3 命名空间来使事情井井有条。 - 我使用 Doctrine 的新迁移库通过命令行处理数据库更新。
- 我还强烈建议在 Phing 中创建详细的构建过程为了处理库依赖性、自动化单元测试和运行可以集成到源代码控制或 CI 服务器中的迁移。如果您使用其中一种框架,也适用于编译 Javascript 或 CSS。
这些实践不仅对 Doctrine 有好处,而且在您尝试构建网站架构的任何时候它们都会派上用场。我认为 Zend 在可扩展性方面的最大 Assets 是资源插件和 ActionHelpers/Controller 插件。
关于php - ZendFramework 与其他框架的集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4561562/