【发布时间】:2017-05-21 07:14:48
【问题描述】:
我想知道是否有一个不同的 ORM 应该为 Symfony 实现的接口。
当我构建一个接受 ORM(现在的 Doctrine)的服务并想要声明类型时,这个问题出现了。
我猜不同的 ORM 有不同的行为和类......在这些情况下,如何构建不依赖特定 ORM 的实体以防万一以后想要切换?
【问题讨论】:
-
Symfony 没有任何 ORM 接口。 Doctrine 本身有不同的层,特别是有 Doctrine\Common\Persistence\ObjectManager 和 ObjectRepository 接口。任何实现这两个接口的 ORM 都可以(理论上)被插入而无需太多改变。我不知道有任何其他 ORM 可以做到这一点。老实说,期望像 ORM 这样的东西可以被换掉是非常不现实的。会出现太多细微的差异。