Laravel 9 Events con Ejemplo

Laravel 9 Events con Ejemplo

Laravel es un framework de PHP muy popular que se utiliza para el desarrollo de aplicaciones web. Los eventos son una de las características más importantes de Laravel que permite a los desarrolladores desacoplar la lógica de negocio de su aplicación.

En este artículo, hablaremos sobre Laravel 9 Events y cómo utilizarlos en tu proyecto Laravel. Aprenderás qué son los eventos, cómo utilizarlos y también te mostraremos algunos ejemplos prácticos.

📋 Aquí podrás encontrar✍
  1. ¿Qué son los eventos en Laravel 9?
  2. Cómo utilizar los eventos en Laravel 9
  3. Ejemplo práctico de Laravel 9 Events
  4. Conclusión
  5. Preguntas frecuentes
    1. ¿Qué son los eventos en Laravel?
    2. ¿Cómo puedo crear un evento en Laravel?
    3. ¿Cómo puedo crear un listener en Laravel?
    4. ¿Cómo registro mi listener para un evento en Laravel?

¿Qué son los eventos en Laravel 9?

Los eventos en Laravel son una forma de desacoplar la lógica de negocio de tu aplicación. Cuando ocurre un evento, Laravel dispara un evento de forma asíncrona. Los eventos pueden ser escuchados por cualquier número de listeners, que son responsables de manejar la lógica en respuesta al evento.

El uso de los eventos en Laravel te permite separar la lógica de tu aplicación en distintas partes y esto permite una mejor organización y mantenibilidad.

Cómo utilizar los eventos en Laravel 9

Para crear un evento en Laravel 9, primero debes crear una clase de evento. Esta clase puede ser generada utilizando el siguiente comando Artisan:

php artisan make:event OrderShipped

Este comando generará una nueva clase de evento, donde puedes definir la lógica de lo que sucede en tu evento.

Una vez que tengas la clase de evento creada, debes definir los listeners que van a escuchar el evento. Puedes crear los listeners utilizando el siguiente comando Artisan:

php artisan make:listener SendOrderEmail

Este comando generará una nueva clase de listener que estarán escuchando en nuestro evento. Además, debemos agregar nuestro listener a la propiedad $listen en el archivo EventServiceProvider.php que se encuentra en la ruta app/Providers:

protected $listen = [
'AppEventsOrderShipped' => [
'AppListenersSendOrderEmail',
],
];

Ahora ya podemos disparar el evento en cualquier parte de nuestra aplicación utilizando la clase event(). Por ejemplo, en nuestro controller:

public function shipOrder(Request $request)
{
// ... ship order

event(new OrderShipped($order));
}

Cuando se execute el método event(new OrderShipped($order));, Laravel disparará el evento y todos los listeners registrados para ese evento serán ejecutados. En nuestro ejemplo, esto incluiría el SendOrderEmail listener que definimos anteriormente.

Ejemplo práctico de Laravel 9 Events

Supongamos que estás construyendo una aplicación de comercio electrónico y quieres enviar un correo electrónico al cliente una vez que su pedido ha sido enviado. Puedes hacerlo utilizando los eventos de Laravel.

Comenzamos por crear nuestra clase de evento:

php artisan make:event OrderShipped

Luego, definimos la lógica para nuestra clase de evento. En este caso, queremos en este evento proporcionar el pedido que se ha enviado:

class OrderShipped
{
use Dispatchable, InteractsWithSockets, SerializesModels;

public $order;

public function __construct(Order $order)
{
$this->order = $order;
}
}

Aquí, hemos creado una propiedad pública de orden que se inicializa en el constructor de la clase.

A continuación, creamos nuestro listener que estará escuchando a nuestro evento:

php artisan make:listener SendOrderEmail

En este caso, queremos enviar un correo electrónico al cliente una vez que el orden se haya enviado. Aquí, es cómo se vería nuestro correo electrónico:

class SendOrderEmail
{
public function handle(OrderShipped $event)
{
// ... send email to customer
}
}

Por último, debemos registrar nuestro listener en nuestro EventServiceProvider.php:

protected $listen = [
'AppEventsOrderShipped' => [
'AppListenersSendOrderEmail',
],
];

Ahora, cada vez que disparamos nuestro evento utilizando la clase event(), nuestro SendOrderEmail listener será ejecutado y enviará un correo electrónico al cliente.

Conclusión

En este artículo, has aprendido acerca de la función de los eventos en Laravel 9 y cómo pueden ser utilizados para desacoplar la lógica de negocio en tu aplicación. También hemos visto cómo crear clases de eventos, crear listeners y cómo registrar los listeners para ser escuchados por nuestros eventos. Esperamos que este artículo te haya ayudado a entender cómo puedes utilizar eventos en tus propios proyectos Laravel.

Si tienes alguna pregunta o sugerencia, no dudes en ponerse en contacto con nosotros. ¡Gracias por leer!

Preguntas frecuentes

¿Qué son los eventos en Laravel?

Los eventos en Laravel son una característica que permite a los desarrolladores separar la lógica de negocio de su aplicación y manejar eventos de forma asíncrona.

¿Cómo puedo crear un evento en Laravel?

Para crear un evento en Laravel, utiliza el comando Artisan php artisan make:event . Este comando generará una nueva clase de evento donde puedes definir la lógica de tu evento.

¿Cómo puedo crear un listener en Laravel?

Para crear un listener en Laravel, utiliza el comando Artisan php artisan make:listener . Este comando generará una nueva clase de listener que puedes usar para manejar la lógica en respuesta al evento.

¿Cómo registro mi listener para un evento en Laravel?

Para registrar un listener para un evento en Laravel, agrega tu listener a la propiedad $listen en el archivo EventServiceProvider.php que se encuentra en la ruta app/Providers. Por ejemplo:
protected $listen = [
'AppEventsOrderShipped' => [
'AppListenersSendOrderEmail',
],
];

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir