andy-thorne/domain-events-bundle
This bundle adds Domain Event dispatching on doctrine events via a MessageBus.
composer require andy-thorne/domain-events-bundle
# Defaults
domain_events:
orm: true
odm: false
bus: domain_event.bus
transport: async_domain_events
configure_routing: true # Auto-configures messenger routing for DomainEventInterfaces to route to the configured transport
framework:
messenger:
transports:
async_domain_events: "%env(ASYNC_MESSENGER_TRANSPORT_DSN)%"
The bundle will also configure these messenger settings based on your domain_events config. If you already have buses
configured, you will need to specify a framework.messenger.default_bus.
# The bundle also configures your
framework:
messenger:
# Set up a bus that will allows no handlers
buses:
<domain_events.bus>:
default_middleware: allow_no_handlers
# Route all domain events to the domain event transport if configure_routing is true (default)
routing:
'AndyThorne\Components\DomainEventsBundle\Events\DomainEventInterface': <domain_events.transport>
Domain Events uses the app's MessageBus to transport domain events. The default Messenger Component is configured to be synchronous and requires at least one handler to be defined for each Message. For Domain Events to work, we need to configure an asynchronous MessageBus and allow it to have no handlers:
Domain Events are dispatched within a doctrine postFlush lifecycle event
How can I help you explore Laravel packages today?