for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace EventSauce\EventSourcing;
class MessageDispatchingEventDispatcher implements EventDispatcher
{
private MessageDispatcher $dispatcher;
private MessageDecorator $decorator;
public function __construct(MessageDispatcher $dispatcher, ?MessageDecorator $decorator = null)
$this->dispatcher = $dispatcher;
$this->decorator = $decorator ?: new DefaultHeadersDecorator();
}
public function dispatch(object ...$events): void
$this->dispatchWithHeaders([], ...$events);
public function dispatchWithHeaders(array $headers, object ...$events): void
$messages = [];
foreach ($events as $event) {
$messages[] = $this->decorator->decorate(new Message($event, $headers));
$this->dispatcher->dispatch(...$messages);