什么是DAL替代symfony2的学说

时间:2011-10-14 19:41:08

标签: symfony

我真的很喜欢 symfony 2 的目标,我真的不喜欢 doctrine ,我喜欢 codeigniters 活跃的记录数据库系统,有吗无论如何,我可以完全从symfony中删除教义,并用代码签名者的DAL替换它?

2 个答案:

答案 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的这一部分。