15

我即将开始使用 CakePHP 2.2 开发一个新的 Web 项目,以前主要使用 Zend Framework 1。

乍一看,我真的很喜欢 CakePHP 处理模型和底层数据库表的方式,尤其是在快速设置一对多和多对多关系方面,并且尽量减少麻烦。坦率地说,与我过去在 Zend Framework 中做事的方式相比,这似乎是一股清新的空气。

然而,在过去几年中,在使用 Zend Framework 时,我曾研究过使用 Doctrine 来提供 ZF 相当笨拙的模型关系。在我看来,教义非常强大和灵活。

所以现在我想知道,在我深入研究我的新 CakePHP 项目之前,我是否还应该考虑将 Doctrine 与我新选择的框架一起使用?与 CakePHP 的内置 ORM 和数据库功能相比,Doctrine 带来了哪些优势和劣势(不是双关语!)?

4

2 回答 2

14

如果作为一个整体使用,CakePHP 效果最好。在您的特定情况下,尽管您可以根据需要使用 Doctrine 而不是 Cake 的 ORM,但您会失去很多 cake 的功能。例如。FormHelper 做了很多“神奇”的事情,比如使用模型的模式猜测字段的正确输入类型等,当验证失败时自动在表单中的适当字段下方显示错误消息等。

正如您所评论的那样,您对 Doctrine 也没有太多经验,因此我建议您坚持使用 CakePHP 的 ORM,并且仅在您发现它不足以满足您的需求时才寻找选项。

于 2012-09-21T05:57:42.877 回答
5

如果你已经使用过 Doctrine 和 CakePHP 的 ORM,你可以根据主要原因来决定改变:

  • 什么会给你更多的生产力?
  • 什么会给你更多的可维护性?
  • 什么会减少你的学习曲线?

就个人而言,我会选择 Doctrine,因为它确实针对一个问题。

于 2012-09-19T20:48:07.060 回答