Событие Symfony против сервиса - PullRequest
0 голосов
/ 20 ноября 2018

Привет, у меня вопрос об архитектуре приложения Symfony. В моем приложении я создаю другого пользователя, но когда пользователь создается, обновляется, удаляется или изменяет его изображение, мне нужно выполнить какое-то действие.

Каков наилучший способ сделать это?Я исключил это на контроллере.Есть еще 2 решения:

  • Создание различных событий, таких как user.created, user.updated, ... И отправка его на действие контроллера и создание другого слушателя для выполнения различных действий, таких какMailListener (для user.created) TaskListener (для user.created) для добавления задачи.

  • Используйте сервис, подобный UserManager, и в этом сервисе есть метод, подобный userCreated (), и для этоговызов метода различных действий, таких как sendMailOnCreated, addTaskOnCreated, например.

Для вас какой метод лучше?

1 Ответ

0 голосов
/ 20 ноября 2018

Для меня ваше первое решение - лучшее.Это явно вариант использования для компонента Event.Это будет проще в обслуживании и более читабельным.

Более того, если вам нужно добавить больше слушателей, вам просто нужно создать другого и привязать его к вашему событию.Вам больше не нужно изменять контроллер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...