bodaclick/async-event-dispatcher
Async event dispatcher for PHP inspired by Symfony. Add one or more drivers (listeners) and dispatch AsyncEventInterface events using a fire-and-forget pub/sub style. Includes RabbitMQ and file drivers, with an easy interface for custom drivers.

This lib is intended to allow for multiple "drivers" (a.k.a listeners) that publish using a fire and forget strategy, mostly within pub/sub software.
The approach is inspired in Symfony's EventDispatcher component. However, the AsyncDispatcher registers the driver to all the events that have been registered (by adding a driver) if no event is passed, calling the driver for all of them.
Install via composer.
Add to your current composer.json require key: "bodaclick/async-event-dispatcher":"1.0.x-dev"
You have to add drivers to the AsyncEventDispatcher so when an AsyncEventInterface is
fired it will be notified.
use BDK\AsyncEventDispatcher\AsyncEventDispatcher;
use BDK\AsyncEventDispatcher\AsyncDriver\RabbitMQDriver;
$driver = new RabbitMQDriver();
$ed = new AsyncEventDispatcher();
//Single event. It also registers the event
$ed->addDriver($driver, 'event.name');
//All events available
$ed->addDriver($driver);
use BDK\AsyncEventDispatcher\AsyncEventInterface;
$event = new CustomEvent(); //implements AsyncEventInterface
$ed->dispatch($event);
Only two drivers are available
Feel free to PR with new drivers!
Creating a new driver is as easy as implementing the AsyncEventDriverInterface
How can I help you explore Laravel packages today?