我正试图弄清楚如何在Laravel应用程序中实现良好的关注点分离。我打算使用Repository模式和使用Doctrine2实现的具体存储库。
现在问题实际上很简单。我应该在哪里EntityManager::flush()
?
当我阅读几篇文章时,我不应该使用updateModel
操作来修改我的对象,因为我最终会在我的存储库中编写业务逻辑。
现在,如果我在我的存储库中只有与持久性和搜索(查找,全部,添加,删除)相关的操作,那么在修改持久对象时我会在哪里执行刷新? 如果我在我的服务类或控制器中(无论我在哪里使用存储库)都这样做,我将把我的业务逻辑与Doctrine结合起来,这就是我想要避免的。 我认为一个很好的选择可能是在请求结束时把它放在某处,但是this answer说这不是一个好主意。
有什么建议吗?