Doctrine orm 条令自定义存储库与实体方法最佳实践

Doctrine orm 条令自定义存储库与实体方法最佳实践,doctrine-orm,theory,Doctrine Orm,Theory,您可以使用实体方法遍历实体,也可以使用实体存储库执行完全相同的操作,区别在于您将创建额外的类并将其附加到实体,存储库还将给其他开发人员造成某种混乱,使他们无法知道某个方法是否可用,他们需要检查实体和存储库 还有其他区别吗?使用自定义存储库有什么好处吗?或者处理这种情况的最佳做法是什么?通常: 实体中的方法应仅连接到此特定实体对象(具有关系的getter/setter除外) 存储库中的方法应连接到整个实体类 例如:若你们有一个文章实体,你们可以在实体内创建“slugify”方法,因为你们想从这

您可以使用实体方法遍历实体,也可以使用实体存储库执行完全相同的操作,区别在于您将创建额外的类并将其附加到实体,存储库还将给其他开发人员造成某种混乱,使他们无法知道某个方法是否可用,他们需要检查实体和存储库

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

通常:

  • 实体中的方法应仅连接到此特定实体对象(具有关系的getter/setter除外)

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

例如:若你们有一个文章实体,你们可以在实体内创建“slugify”方法,因为你们想从这个特定对象的标题中生成slug

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

通常:

  • 实体中的方法应仅连接到此特定实体对象(具有关系的getter/setter除外)

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

例如:若你们有一个文章实体,你们可以在实体内创建“slugify”方法,因为你们想从这个特定对象的标题中生成slug

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