✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

Como usar eventos e ouvintes do Laravel em seu aplicativo

140

O Laravel vem com vários recursos interessantes em seu núcleo. Alguns deles são transmissão, armazenamento de arquivo, notificações, eventos, etc. Cada um desses recursos integrados ajuda os desenvolvedores a simplificar tarefas comuns e complicadas.

Neste artigo, discutimos os Eventos do Laravel que nos permitem registrar um ouvinte para eventos específicos que ocorrem na aplicação. Em outras palavras, posso dizer usuário registrado, pedido feito, produto adicionado, todos esses são os eventos. E se você precisar acionar alguma ação após esses eventos, você pode registrar ouvintes. O Laravel chama automaticamente os ouvintes registrados para eventos específicos.

Para o nosso artigo, implementarei um evento para cadastro de usuários. Assim que um usuário se cadastrar no aplicativo, o sistema deve enviar a ele um e-mail de boas-vindas. Aqui, o registro do usuário é o evento e o envio de um e-mail de boas-vindas é um ouvinte.

Dito isso, vamos ver como usar eventos e ouvintes em seu aplicativo Laravel.

Registrando Eventos e Ouvintes no Laravel

O Laravel disponibiliza o EventServiceProviderarquivo onde você precisa cadastrar seus eventos e ouvintes. No nosso caso, precisamos adicionar um evento e ouvinte para o registro do usuário. Então, abra o arquivo EventServiceProvider.phpe adicione um UserRegisteredevento nele.

app / Providers / EventServiceProvider.php

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

O usuário pode adicionar tantos eventos a esta matriz, dependendo dos requisitos. Em seguida, gere eventos do Laravel executando o comando:

php artisan event:generate

Este comando cria os diretórios ‘Eventos’ e ‘Ouvintes’ na pasta ‘app’. Dentro do diretório ‘app / Events’ você encontrará o arquivo UserRegistered.php. Da mesma forma, o SendWelcomeEmail.phparquivo está no diretório ‘app / Listeners’.

Definindo Eventos e Ouvintes

Agora você está pronto com o padrão para o evento registrado pelo usuário. Nosso objetivo é enviar um e-mail de boas-vindas ao usuário após o registro. Para enviar um e-mail, precisamos de um objeto de usuário que contém as informações do usuário. No UserRegisteredcaso de eu passar um objeto de usuário para seu construtor. Este objeto então passará para o ouvinte.

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;   
    }
}

O código que envia um e-mail para um usuário irá para dentro do arquivo listener. Abra o listener SendWelcomeEmaile escreva o código da seguinte maneira.

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]');
        });
    }
}

No arquivo acima, escrevi o código para envio de e-mail no handlemétodo da classe listener. Isso ocorre porque o handlemétodo obtém uma chamada após a ocorrência de um evento de registro do usuário.

Também usei o primeiro parâmetro como ’emails.mail’ no método Mail. Isso significa que você deve criar o resources/views/emails/mail.blade.phparquivo.

mail.blade.php

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

Finalmente, chame o evento

Nesta fase, está tudo pronto com o seu evento e ouvinte. A última etapa que resta é chamar o evento do local apropriado. Digamos que você esteja usando ‘UserController’ para registrar um usuário. Portanto, em UserController, você pode fazer uma chamada para o evento da seguinte maneira.

app / 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;
    }
}

Agora, quando um usuário se registra, o código acima dá uma chamada para o evento ‘UserRegistered’ que eventualmente chama o ouvinte. O ouvinte então envia um e-mail de boas-vindas ao usuário.

Espero que você entenda como usar eventos e ouvintes em seu aplicativo Laravel. Por favor, compartilhe seus pensamentos e sugestões na seção de comentários abaixo.

Artigos relacionados

Fonte de gravação: artisansweb.net

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação