如果我使用ORM,请与Zend或Symfony说。这是一个全有或全无的交易?
我想使用ORM,但也希望在某些情况下优化性能并自己编写查询以获得细节。因此,如果我开始使用ORM,一旦将其包含在我的项目中,是否难以以旧方式完成?
答案 0 :(得分:9)
大多数ORM都会让您运行即席查询。
答案 1 :(得分:6)
使用Doctrine很容易“突破”ORM。 Doctrine允许您以4种不同的方式编写查询:
如果您在Symfony中使用Doctrine,那么Symfony绝对没有任何功能可以阻止您使用Doctrine,即使它已启用。
最后一个警告:如果您使用的是Doctrine的一些高级功能(例如事件或行为),那么当您在DQL之外进行查询时,这些功能将很难配合使用。
答案 2 :(得分:0)
你可以混合和匹配你喜欢的一切。主要风险是在您的工具之间引入不兼容的不一致。 假设的例外:
如果我有一个名为User的doctrine2 ORM实体,并且我使用Zend_Db_Table来更改users表上的刷新之间的某些值,我可能会有一些无意的副作用或不良行为。