Концепцию паблишинга ивентов из агрегата/энтити я почерпнул в Domain-driven design in PHP. DomainEventPublisher::instance()->publish($event) и вот это вот всё. ОК! Но когда дело дошло до реального проекта, не совсем понял как использовать в этой схеме Symfony Messenger со всеми его ништяками и плюшками. Ивентов вроде немного было, решил их паблишить из application services так сказать. Но уже даже на этом "немного" столкнулся с тем, что бизнес-логика расползается по разным сервисам, еще нужно не забыть в event store ивент положить... Короче, очень некрасиво получается. В документации к Symfony Messenger тоже как-то все из контроллеров вызывается и т.п. Вопрос в чём: есть ли какая-нибудь метода паблишинга непосредственно из энтити с помощью Symfony Messenger?
Привет. Пример в книге не самый удачный. Один из вариантов - накапливать события в сущности и иметь метод их получения извне. "Извне" уже и будут вызывать то, что им нужно - messenger/store/etc
Обсуждают сегодня