馃帶 Eventos y Listeners en Laravel
Desacopla la l贸gica de tu aplicaci贸n con Eventos y Listeners
En Laravel, los Eventos permiten disparar acciones cuando ocurre algo en el sistema (por ejemplo, un usuario se registra o realiza una compra). Los Listeners escuchan esos eventos y ejecutan tareas espec铆ficas en respuesta, como enviar un correo o guardar un registro.
馃摙 ¿Qu茅 es un Evento?
Un Evento representa algo que sucede dentro de la aplicaci贸n. Por ejemplo, UsuarioRegistrado puede ser un evento que se dispara cada vez que un nuevo usuario se registra.
馃З Crear un Evento
Desde la terminal, crea un evento con:
php artisan make:event UsuarioRegistrado
Esto genera app/Events/UsuarioRegistrado.php:
namespace App\Events;
use App\Models\User;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;
class UsuarioRegistrado
{
use Dispatchable, SerializesModels;
public $usuario;
public function __construct(User $usuario)
{
$this->usuario = $usuario;
}
}
馃帶 Crear un Listener
Los Listeners reaccionan a un evento cuando ocurre.
php artisan make:listener EnviarCorreoBienvenida --event=UsuarioRegistrado
Esto genera app/Listeners/EnviarCorreoBienvenida.php:
namespace App\Listeners;
use App\Events\UsuarioRegistrado;
use Mail;
use App\Mail\CorreoBienvenida;
class EnviarCorreoBienvenida
{
public function handle(UsuarioRegistrado $event)
{
Mail::to($event->usuario->email)
->send(new CorreoBienvenida($event->usuario));
}
}
⚙️ Registrar Eventos y Listeners
En el archivo app/Providers/EventServiceProvider.php:
protected $listen = [
\App\Events\UsuarioRegistrado::class => [
\App\Listeners\EnviarCorreoBienvenida::class,
],
];
馃殌 Disparar un Evento
Cuando un usuario se registra, podemos disparar el evento:
use App\Events\UsuarioRegistrado;
public function registrar(Request $request)
{
$usuario = User::create($request->all());
event(new UsuarioRegistrado($usuario));
return redirect()->back()->with('success', 'Usuario registrado correctamente.');
}
馃挰 Ejemplo visual interactivo
A continuaci贸n ver谩s una simulaci贸n de c贸mo funciona el sistema de eventos y listeners. Al presionar el bot贸n, se dispara un evento de registro y el listener muestra una notificaci贸n de bienvenida.
馃帶 Simulador de Evento y Listener
Presiona el bot贸n para simular el registro de un nuevo usuario:
馃摝 Ventajas de usar Eventos y Listeners
- Desacoplan la l贸gica del c贸digo principal.
- Facilitan la reutilizaci贸n y mantenibilidad.
- Permiten manejar acciones m煤ltiples a partir de un solo evento.
- Se integran con colas (Jobs) para procesamiento as铆ncrono.
馃摎 Ejemplo de varios listeners para un mismo evento
protected $listen = [
\App\Events\UsuarioRegistrado::class => [
\App\Listeners\EnviarCorreoBienvenida::class,
\App\Listeners\RegistrarActividad::class,
\App\Listeners\AsignarRolInicial::class,
],
];
馃搵 En resumen:
- Evento: algo que ocurre en el sistema (por ejemplo, “Usuario registrado”).
- Listener: reacciona al evento (por ejemplo, enviar correo).
- Usa
event()para disparar eventos. - Laravel maneja todo el enlace entre ellos autom谩ticamente.
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias