spatie/laravel-event-projector
Deprecated in favor of spatie/laravel-event-sourcing. Entry-level event sourcing toolkit for Laravel: define aggregates, projectors, and reactors; persist domain events, build read models, and react to events for auditing and reporting-friendly apps.
You can add and remove projectors and reactors via the Projectionist facade.
Whilst this package can auto-discover your event handlers, it is still useful to be able to add and remove projectors or reactors for your test suite. For example, a slow reactor might be worth removing to speed up your tests if the behaviour of that reactor is not relevant for the feature you are testing.
Adding one projector:
Projectionist::addProjector(TransactionCountProjector::class);
Adding many projectors:
Projectionist::addProjector([
AccountBalanceProjector::class,
TransactionCountProjector::class,
]);
Adding one reactor:
Projectionist::addReactor(SendMailReactor::class);
Adding many reactors:
Projectionist::addReactor([
SendMailReactor::class,
SendPushNotificationReactor::class,
]);
A projector and a reactor are both event handlers. You can remove either of them with the same function.
Removing one event handler:
Projectionist::withoutEventHandler(SendPushNotificationReactor::class);
Removing many event handlers:
Projectionist::withoutEventHandlers([
TransactionCountProjector::class,
SendPushNotificationReactor::class,
]);
How can I help you explore Laravel packages today?