Страница 1 из 1

Составные команды?

Добавлено: 2023.01.04, 13:04
wolfandman
Бизнес-логика:
1) назначить заказ пользователю (заранее созданный)
2) дать пользователю права на доступ к продукции

Эти две задачи должны быть выполнены в транзакции.
Бывают случаи, когда права даются без создания заказа - например, в подарок. Поэтому я разделил эти задачи на отдельные команды.

Правильно ли будет для реализации данной бизнес-логики создать одну команду, например, AddUserToOrderAndGiveAccessToProductsCommand и в хендлере вызвать поочерёдно каждую из команд? Как и что при этом тестировать?

А может быть лучше выполнить первую команду, выпустить событие, и вторую команду выполнять как обработчик события?

Re: Составные команды?

Добавлено: 2023.01.04, 16:12
ElisDN
wolfandman писал(а): 2023.01.04, 13:04 А может быть лучше выполнить первую команду, выпустить событие, и вторую команду выполнять как обработчик события?
Да, лучше всё делать так.

Re: Составные команды?

Добавлено: 2023.01.04, 17:17
wolfandman
ElisDN писал(а): 2023.01.04, 16:12
wolfandman писал(а): 2023.01.04, 13:04 А может быть лучше выполнить первую команду, выпустить событие, и вторую команду выполнять как обработчик события?
Да, лучше всё делать так.
Спасибо!
А тогда где лучше установить прослушивание этих событий? В Bootstrap было бы странно, потому что бизнес-логика будет находиться грубо говоря в конфиге проекта. В контроллере тоже неправильно.

Re: Составные команды?

Добавлено: 2023.01.04, 19:29
ElisDN
Напишите класс-слушатель с логикой и уже его зарегистрируйте в Bootstrap или конфиге.