Events (Eventos)
El sistema de eventos de Laravel implementa el patron Observer, permitiendo suscribirse y escuchar eventos que ocurren en la aplicacion. Los eventos desacoplan diferentes componentes del sistema.
Definir un evento
php artisan make:event OrderPlaced
class OrderPlaced
{
use Dispatchable, SerializesModels;
public function __construct(
public Order $order
) {}
}
Despachar un evento
// En cualquier parte del codigo
OrderPlaced::dispatch($order);
// O usando el helper
event(new OrderPlaced($order));
Registro de listeners
En Laravel 11+, los listeners se descubren automaticamente si siguen la convencion de nombres.
// Los listeners se registran automaticamente
class SendOrderConfirmation
{
public function handle(OrderPlaced $event): void
{
Mail::to($event->order->user)->send(
new OrderConfirmationMail($event->order)
);
}
}
Los eventos son ideales para enviar notificaciones, actualizar estadisticas, sincronizar con servicios externos y cualquier efecto secundario que deba ocurrir despues de una accion principal. Pueden procesarse de forma sincrona o asincrona usando colas.