Doctrine Custom Repository vs Entity Methods最佳实践

时间:2012-10-16 14:01:50

标签: doctrine-orm theory

您可以使用实体方法遍历实体,并且您可以使用实体存储库完全相同,不同之处在于您将创建额外的类并将其附加到实体,并且存储库也会对其他开发人员造成某种混淆要知道某种方法是否可用,他们需要检查实体和存储库。

还有其他区别吗?使用自定义存储库有什么好处?或者处理这种情况的最佳做法是什么?

1 个答案:

答案 0 :(得分:7)

一般来说:

  • 实体中的方法只应连接到此特定实体对象(例外情况是带有关系的getter / setter)。

  • 存储库中的方法应连接到整个实体类

例如:如果你有一个Article实体,你可以在实体内部创建“slugify”方法,因为你想从这个特定对象的标题中创建slug。

但是,如果您需要,比如说,获取所有超过一年的文章 - 您将在存储库中创建此类方法(因为它与任何特定对象无关)