【发布时间】:2018-11-20 11:36:31
【问题描述】:
您好,我有一个关于 symfony 应用程序架构的问题, 在我的应用程序中,我创建了不同的用户,但是当创建、更新、删除用户或更改他的图片时,我需要执行一些操作。
最好的方法是什么?我排除在控制器操作上执行此操作。还有其他 2 个解决方案:
创建不同的事件,如 user.created、user.updated... 并在控制器操作上分派它并让不同的侦听器执行不同的操作,如 MailListener(对于 user.created)TaskListener(对于 user.created)。 created) 用于添加任务。
使用像 UserManager 这样的服务,并且在这个服务上有一个像 userCreated() 这样的方法,并且在这个方法上调用不同的操作,比如 sendMailOnCreated、addTaskOnCreated。
对你来说最好的方法是什么?
【问题讨论】:
-
像往常一样,答案是:视情况而定。基于事件的系统非常灵活。如果您需要在 user.create 上做其他事情,那么您可以插入另一个侦听器。另一方面,用户管理器可让您将所有功能集中在一个地方,并且可能更易于维护。我倾向于使用事件,但没有“最佳”方法。