Skip to content

Commit fb47a2d

Browse files
Jeroen de Graafjerowork
authored andcommitted
Register all events to SagaEventHandler to Symfony event bus
1 parent 1523648 commit fb47a2d

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

src/GemberEventSourcingBundle.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
namespace Gember\EventSourcingSymfonyBundle;
66

7+
use Gember\EventSourcing\Saga\Attribute\SagaEventSubscriber;
8+
use Gember\EventSourcing\Saga\SagaEventHandler;
79
use Gember\EventSourcing\UseCase\Attribute\DomainCommandHandler;
810
use Gember\EventSourcing\UseCase\CommandHandler\UseCaseCommandHandler;
911
use Symfony\Component\Config\Definition\Configurator\DefinitionConfigurator;
@@ -217,5 +219,22 @@ function (ChildDefinition $definition, DomainCommandHandler $attribute, Reflecti
217219
]);
218220
},
219221
);
222+
223+
$builder->registerAttributeForAutoconfiguration(
224+
SagaEventSubscriber::class,
225+
function (ChildDefinition $definition, SagaEventSubscriber $attribute, ReflectionMethod $reflector) use ($builder, $config): void {
226+
$parameter = $reflector->getParameters()[0];
227+
228+
$bus = $config['message_bus']['symfony']['event_bus'] ?? 'event.bus';
229+
230+
$builder
231+
->getDefinition(SagaEventHandler::class)
232+
->addTag('messenger.message_handler', [
233+
'bus' => str_starts_with($bus, '@') ? substr($bus, 1) : $bus,
234+
'handles' => $parameter->getType()->getName(),
235+
'method' => '__invoke',
236+
]);
237+
},
238+
);
220239
}
221240
}

0 commit comments

Comments
 (0)