Symfony2自定义实体存储库充当DAO?

时间:2013-09-18 18:37:36

标签: design-patterns symfony dao

问题很简单(答案可能不是):将实体A的自定义存储库用作该实体的DAO是一种好的做法吗?

存储库包含与该实体相关的特定查询,但添加持久化方法是否是个好主意?

我来自Spring世界,我正在尝试以类似的方式组织我的代码(controller-> service-> dao-> entity)但我不知道它是否是Symfony2中的正确方法世界。

感谢。

1 个答案:

答案 0 :(得分:1)

我不是100%肯定你为什么需要一个DAO。由于实体管理器扮演数据访问对象的角色。我不确定您要将哪种功能添加到存储库。如果您只想要一些持久性功能,请使用entitymanager。如果你想在持久化函数中有更多的逻辑,你可以引入经理类。

以下是我通常的工作方式:

我的存储库类中只有查询。我介绍了另一个我称之为经理类的服务层。在那些我有改变我的实体以及持久化他们的整体方法。

示例: 我有一个User-UserGroup情况。我正在使用FOSUserBundle中的UserManager,但也引入了UserGroupManager。此UserGroupManager具有允许我将用户添加到组(加入)或删除它们,将邀请发送到组等以及在执行这些操作时触发某些事件的功能。 我还有一个UserGroupRepository,我用它来查找属于特定人员的组或者加入我通常需要的所有必要数据。