我正在使用Symfony2开始一个新项目,但不确定要选择哪个ORM。我听说过关于Doctrine2的一些负面消息,特别是在继承和DQL方面。似乎Propel已经复苏了,但另一方面也不能保证它会永远存在。
你有什么建议吗?
我正在使用Symfony2开始一个新项目,但不确定要选择哪个ORM。我听说过关于Doctrine2的一些负面消息,特别是在继承和DQL方面。似乎Propel已经复苏了,但另一方面也不能保证它会永远存在。
你有什么建议吗?
我可以告诉你,Propel是与Symfony2一起使用的最合适的ORM。它运行良好,没有停止使用的计划。Propel2项目正在努力变得比Propel 1.6.x(曾经真的很棒)更好。
不要犹豫使用Propel,许多用户,包括Sensio Labs在内都在使用它!
这是Symfony2的Propel文档:http://www.propelorm.org/documentation/#working_with_symfony2
注意:Stack Exchange上有一个相关主题:https://softwareengineering.stackexchange.com/questions/48760/should-i-choose-doctrine-2-or-propel-1-5-1-6-and-why/117078#117078
我忘记了一些要点:
我喜欢Doctrine2中的一些要点:
这个问题与Doctrine DBAL没有关系,而更多地涉及Doctrine ORM。同时,Propel2正在努力改进整个Propel 1.6.x代码。
哦,我长期使用Doctrine2 ;)
对于我个人而言,有几个原因让我选择Doctrine 2:
从概念上来说,它非常容易理解。使用实体和实体管理器很简单。我喜欢实体不需要扩展任何基础模型类(如在Doctrine 1中)。
现在它在Symfony2中是“标准ORM”(或者说是“准标准ORM”)。尽管Symfony2官方未正式“认可”它,但大多数人都在使用它,因此网络上有大量关于它的信息,这是非常有价值的。
你提到你听说过一些“关于Doctrine2的坏消息”,重要的是你要意识到没有哪个ORM会是完美的。我也遇到了一些问题,但只要你有创造性思维,就可以找到解决方案。有时这个解决方案意味着编写原始SQL,无论ORM纯粹主义者可能说什么。我没有遇到任何后悔使用Doctrine 2的情况。
我花了很多时间研究Propel,但我不喜欢它的工作方式。这并不是说它是一个编程不良的库,但对我个人来说不是一个好的选择。但由于每个开发者都不同,我能提供的最好建议是您查看两个库的文档和使用示例。因为你将成为使用它的人,而不是我们,你需要选择你认为你会从中受益最多的库。