✅ Noticias, temas, complementos de WEB y WordPress. Aquí compartimos consejos y las mejores soluciones para sitios web.

Cómo usar eventos y oyentes de Laravel en su aplicación

383

Laravel viene con varias características interesantes en su núcleo. Algunas de ellas son Difusión, Almacenamiento de archivos, Notificaciones, Eventos, etc. Cada una de estas funciones integradas ayuda a los desarrolladores a simplificar tareas comunes y complicadas.

En este artículo, discutimos los eventos de Laravel que nos permiten registrar un oyente para eventos específicos que ocurren en la aplicación. En otras palabras, puedo decir usuario registrado, pedido realizado, producto agregado, todos estos son los eventos. Y si necesita activar alguna acción después de estos eventos, puede registrar oyentes. Laravel llama automáticamente a los oyentes registrados para eventos específicos.

Para nuestro artículo, implementaré un evento para el registro de usuarios. Una vez que un usuario se registró en la aplicación, el sistema debería enviarle un correo electrónico de bienvenida. Aquí el registro de usuario es el evento y el envío de un correo electrónico de bienvenida es un oyente.

Habiendo dicho eso, veamos cómo usar eventos y oyentes en su aplicación Laravel.

Registro de eventos y oyentes en Laravel

Laravel proporciona un EventServiceProviderarchivo donde necesita registrar sus eventos y oyentes. En nuestro caso, necesitamos agregar un evento y un oyente para el registro del usuario. Entonces, abra el archivo EventServiceProvider.phpy agregue un UserRegisteredevento en él.

app / Providers / EventServiceProvider.php

...
...
class EventServiceProvider extends ServiceProvider
{
    /**
     * The event listener mappings for the application.
     *
     * @var array
     */
    protected $listen = [
        'AppEventsUserRegistered' => [
            'AppListenersSendWelcomeEmail',
        ],
    ];

El usuario puede agregar tantos eventos a esta matriz según los requisitos. A continuación, genere eventos de Laravel ejecutando el comando:

php artisan event:generate

Este comando crea los directorios ‘Eventos’ y ‘Oyentes’ en la carpeta ‘aplicación’. Dentro del directorio ‘app / Events’ encontrará el archivo UserRegistered.php. De manera similar, el SendWelcomeEmail.phparchivo está en el directorio ‘app / Listeners’.

Definición de eventos y oyentes

Ahora está listo con el texto estándar para su evento registrado de usuario. Nuestro objetivo es enviar un correo electrónico de bienvenida al usuario después de que se haya registrado. Para enviar un correo electrónico, necesitamos un objeto de usuario que contenga la información del usuario. En el UserRegisteredcaso de que le pase un objeto de usuario a su constructor. Este objeto luego pasará al oyente.

app / Events / UserRegistered.php

<?php
 
namespace AppEvents;
 
....
use AppUser;
 
class UserRegistered
{
    use Dispatchable, InteractsWithSockets, SerializesModels;
 
    public $user;
 
    /**
     * Create a new event instance.
     *
     * @return void
     */
    public function __construct(User $user)
    {
        $this->user = $user;   
    }
}

El código que envía un correo electrónico a un usuario irá dentro del archivo de escucha. Abra el oyente SendWelcomeEmaily escriba el código de la siguiente manera.

app / Listeners / SendWelcomeEmail.php

<?php
 
namespace AppListeners;
 
....
use Mail;
 
class SendWelcomeEmail
{
    ....
    ....
 
    /**
     * Handle the event.
     *
     * @param  UserRegistered  $event
     * @return void
     */
    public function handle(UserRegistered $event)
    {
        $data = array('name' => $event->user->name, 'email' => $event->user->email, 'body' => 'Welcome to our website. Hope you will enjoy our articles');
 
        Mail::send('emails.mail', $data, function($message) use ($data) {
            $message->to($data['email'])
                    ->subject('Welcome to our Website');
            $message->from('[email protected]');
        });
    }
}

En el archivo anterior, escribí el código para enviar correo electrónico en el handlemétodo de la clase de escucha. Esto se debe a que el handlemétodo recibe una llamada después de la ocurrencia de un evento de registro de usuario.

También utilicé el primer parámetro como ’emails.mail’ en el método Mail. Significa que debes crear un resources/views/emails/mail.blade.phparchivo.

mail.blade.php

Hi <strong>{{ $name }}</strong>,
 
<p>{{ $body }}</p>

Finalmente llame al evento

En esta etapa, todo está listo con su evento y su oyente. El último paso que queda es llamar al evento desde el lugar apropiado. Supongamos que está utilizando ‘UserController’ para registrar un usuario. Entonces, desde el UserController, puede llamar al evento de la siguiente manera.

aplicación / Http / Controllers / UserController.php

<?php
 
namespace AppHttpControllers;
 
....
use AppEventsUserRegistered;
use AppUser;
 
class UserController extends Controller
{
    .....
    .....
 
    /**
     * Store a newly created resource in storage.
     *
     * @param  IlluminateHttpRequest  $request
     * @return IlluminateHttpResponse
     */
    public function store(Request $request)
    {
        $user = User::create([
            'name' => $request->input('name'),
            'email' => $request->input('email'),
            'password' => bcrypt($request->input('password')),
        ]);
  
        // call our event here
        event(new UserRegistered($user));
  
        return $user;
    }
}

Ahora, cuando un usuario se registra, el código anterior da una llamada al evento ‘UserRegistered’ que eventualmente llama al oyente. A continuación, el oyente envía un correo electrónico de bienvenida al usuario.

Espero que entiendas cómo usar eventos y oyentes en tu aplicación Laravel. Comparta sus pensamientos y sugerencias en la sección de comentarios a continuación.

Artículos relacionados

Fuente de grabación: artisansweb.net

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More