jose-ba/laravel-simple-bus

There is no license information available for the latest version (0.1.2) of this package.

Paquete para usar simple-bus en Laravel

0.1.2 2021-10-08 10:56 UTC

This package is auto-updated.

Last update: 2024-04-08 16:19:53 UTC


README

Implementación muy sencilla de un bus de eventos usando simple-bus/message-bus en Laravel.

#Uso

Solicitar la instancia del bus

Si se usa inyección de dependencias, pedir una instancia de Buses\Domain\EventBus en el constructor.

public function __construct(\Buses\Domain\EventBus $eventBus) {
    $this->eventBus = $eventBus;
}

Registrar un listener

El bus está registrado en el contenedor de servicios como singleton para poder registrar listeners a lo largo de la aplicación antes de lanzar un evento.

Para registrar un listener, hay que hacer la siguiente llamada:

$this->eventBus->addSubscriber(
    Evento::class,
    [new ClaseDelHandler(), 'método a llamar'] // O un callable cualquiera
);

Es decir, se pasa como primer parámetro el nombre completo de la clase que representa el evento, y como segundo parámetro un callable al que se pasará el evento.

Lanzar un evento

Para lanzar un evento, simplemente hay que pasar una instancia del mismo al bus:

$this->eventBus->dispatch(new Evento());