Size: a a a

2022 January 05

D

Dmitry in symfony
так мне и так понятно, я просто опрос делаю кто, когда и где бросает событие
источник

SB

Sergei Baikin in symfony
Зависит от того как фейлы на логику могут повлиять
ДО удаления
после удаления
Или сагу использую и тогда транзакционно во время
источник

✨Basic_Instinct✨ in symfony
есть событие preRemove и postRemove
источник

D

Dmitry in symfony
попробую сейчас более подробно описать кейс
источник

Kd

Konstantin dmz9 in symfony
я для себя вывод сделал "вообще не используйте" 😊
источник

Kd

Konstantin dmz9 in symfony
писал что без доктрины
источник

✨Basic_Instinct✨ in symfony
шта ? вы о doctrine.event_listener ?
источник

✨Basic_Instinct✨ in symfony
и о них тоже
источник

✨Basic_Instinct✨ in symfony
вроде как и доктриной
источник

Kd

Konstantin dmz9 in symfony
источник

✨Basic_Instinct✨ in symfony
он сам не знает чего хочет ))
источник

D

Dmitry in symfony
Есть Coupon -> OneToMany -> Promocode
промокод может быть выдан 100500 юзерам для пользования
есть у нас хендлер (контроллер, ендпоинт, как угодно называйте) DELETE /coupons/id
в нем мы делаем
couponRepository->remove($coupon)
flush
messageBus->dispatch(CouponDeleted)

однако нам нужно разослать оповещения пользователям которым были розданы промокоды что они более недействительны

вот мне интересно кто какой вариант выбирает
1. прямо в хендлере получить список промокодов купона и на каждый бросить событие
2. в купон сущности создать события и вернуть их, а потом бросить события в бас
3. доктрина через post/preRemove

другие варианты
источник

D

Dmitry in symfony
я хочу знать кто как делает, а не КАК сделать технически
источник

SB

Sergei Baikin in symfony
Если на сам хендлер есть ретраи есть то я бы выбрал 1 вариант
Бросил событие а потом удалил

3 и 4 не дают гарантии что событие отправится
источник

D

Dmitry in symfony
тогда мы теряем инкапсуляцию...потому как вызывающая сторона должна знать о промокодах в купоне
может тогда вариант 2 лучше ?
источник

Kd

Konstantin dmz9 in symfony
о понеслось
источник

✨Basic_Instinct✨ in symfony
рассылка уведомлений никак не относится к событию доктрины, это отдельный сервис со своей ответственностью, также это будет 100500 уведомлений, которые также нужно контролировать на успех
источник

D

Dmitry in symfony
да при чем тут доктрина ? далась вам эта доктрина :) возьмите другой ОРМ или без ОРМ
источник

SB

Sergei Baikin in symfony
для меня хэндлер команды удаления купона в том же модуле где и купон
не вижу проблем с инкапуляцией
источник

D

Dmitry in symfony
понял, спасибо, мысль понял
источник