Бизнес-логика:
1) назначить заказ пользователю (заранее созданный)
2) дать пользователю права на доступ к продукции
Эти две задачи должны быть выполнены в транзакции.
Бывают случаи, когда права даются без создания заказа - например, в подарок. Поэтому я разделил эти задачи на отдельные команды.
Правильно ли будет для реализации данной бизнес-логики создать одну команду, например, AddUserToOrderAndGiveAccessToProductsCommand и в хендлере вызвать поочерёдно каждую из команд? Как и что при этом тестировать?
А может быть лучше выполнить первую команду, выпустить событие, и вторую команду выполнять как обработчик события?
Составные команды?
Re: Составные команды?
Да, лучше всё делать так.wolfandman писал(а): ↑2023.01.04, 13:04 А может быть лучше выполнить первую команду, выпустить событие, и вторую команду выполнять как обработчик события?
-
- Сообщения: 40
- Зарегистрирован: 2012.06.04, 19:52
Re: Составные команды?
Спасибо!ElisDN писал(а): ↑2023.01.04, 16:12Да, лучше всё делать так.wolfandman писал(а): ↑2023.01.04, 13:04 А может быть лучше выполнить первую команду, выпустить событие, и вторую команду выполнять как обработчик события?
А тогда где лучше установить прослушивание этих событий? В Bootstrap было бы странно, потому что бизнес-логика будет находиться грубо говоря в конфиге проекта. В контроллере тоже неправильно.
Re: Составные команды?
Напишите класс-слушатель с логикой и уже его зарегистрируйте в Bootstrap или конфиге.