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 DecoratingMessageDispatcher implements MessageDispatcher
{
/**
* @var MessageDispatcher
*/
private $dispatcher;
* @var MessageDecorator
private $decorator;
public function __construct(MessageDispatcher $dispatcher, MessageDecorator $decorator = null)
$this->dispatcher = $dispatcher;
$this->decorator = $decorator ?: new DefaultHeadersDecorator();
}
public function dispatch(Message ...$messages): void
$messages = array_map(fn (Message $message) => $this->decorator->decorate($message), $messages);
$this->dispatcher->dispatch(...$messages);