我即将开始使用CakePHP 2.2开发一个新的Web项目,之前大部分时间都在使用Zend Framework 1。
初看起来,我非常喜欢CakePHP处理模型和底层数据库表的方式,特别是关于快速设置一对多和多对多关系以及最小的麻烦。坦率地说,与我以前在Zend Framework中做事情相比,这似乎是一种新鲜空气。
然而,在使用Zend Framework的过去几年中,我曾考虑使用Doctrine来提供ZF相当笨拙的模型关系。学说让我非常强大和灵活。
所以现在我想知道,在我深入了解我的新CakePHP项目之前,我是否还应该考虑将Doctrine用于我新选择的框架?与CakePHP的内置ORM和数据库功能相比,Doctrine带来了哪些优势和劣势(没有双关语!)?
答案 0 :(得分:12)
如果整体使用CakePHP效果最佳。在您的具体情况下,如果您愿意,可以使用Doctrine而不是Cake的ORM,但是您将丢失很多蛋糕功能。例如。 FormHelper使用模型的模式“疯狂地”做很多事情,比如为字段等猜测正确的输入类型,在验证失败时自动在表单中的相应字段下面显示错误消息等。
正如你评论的那样,你对Doctrine没有多少经验,所以我建议坚持使用CakePHP的ORM,只有当你觉得它不能满足你的需求时才会寻找选项。
答案 1 :(得分:4)
如果您已经使用过Doctrine和CakePHP的ORM,您可以根据要改变的主要原因来决定:
就个人而言,我会选择Doctrine,因为它确实特定于一个问题。