我真的很喜欢 symfony 2 的目标,我真的不喜欢 doctrine ,我喜欢 codeigniters 活跃的记录数据库系统,有吗无论如何,我可以完全从symfony中删除教义,并用代码签名者的DAL替换它?
答案 0 :(得分:2)
Doctrine 2是纯Data Mapper模式实现。它优于Active Record的优点是您不必将模型弯曲到数据库模式,反之亦然。在大多数情况下,您的模型和架构可能会单独发展;您只需要更新映射元数据。
另外,您不必扩展/实现任何特殊的类/接口。您的模型由POPO(Plain Old PHP Objects)组成,映射由外部对象(实体管理器)管理。这允许在PHP端进行良好的OO设计,并在数据库端进行良好的模式设计。
所以,我建议你重新考虑回到Active Record的愿望。范式转换可能需要一些时间,但这是值得的。
答案 1 :(得分:1)
Doctrine是默认选择并不意味着它是唯一的选择。它没有与Symfony紧密耦合,可以替换。
Symfony提供合理的默认值,但让您可以自由更改它们。
例如,您可以use Propel。它实现了Active Record(而不是Doctrine2)。
如果您愿意,可以编写自己的ORM实现。
请注意,除了ORM之外,Doctrine还有一些有用的帮助程序库。例如,在Symfony中使用注释阅读器来解析注释。如果你使用它们,你将需要Doctrine的这一部分。