Laravel Events

Laravel
Tempo de leitura: 3 minutos

Laravel Events: Os eventos no Laravel oferecem uma maneira elegante e desacoplada de comunicar diferentes partes de sua aplicação. Ao disparar um evento, você pode notificar outras partes do sistema sobre uma ação específica, permitindo que elas reajam de forma adequada.

Neste artigo, vamos explorar em detalhes como criar, registrar e testar eventos no Laravel, utilizando exemplos práticos para ilustrar cada conceito.

Gerando Events e Listeners

O Laravel facilita a criação de eventos e listeners através de comandos Artisan.

  • Criando um Evento:

Bash

php artisan make:event UserRegistered

Isso gerará um novo arquivo em app/Events/UserRegistered.php.

  • Criando um Listener:

Bash

php artisan make:listener SendWelcomeEmail

Isso gerará um novo arquivo em app/Listeners/SendWelcomeEmail.php.

Registrando Events e Listeners

Para que um listener seja notificado sobre um evento, é necessário registrá-lo no EventServiceProvider.

PHP

// app/Providers/EventServiceProvider.php

protected $listen = [
    Registered::class => [
        SendWelcomeEmail::class,
    ],
];

Definindo Events e Listeners

  • Evento:

PHP

namespace App\Events;

use Illuminate\Broadcasting\InteractsWithSockets; use Illuminate\Foundation\Events\Dispatchable; use Illuminate\Queue\SerializesModels; use App\Models\User;  

class UserRegistered { use Dispatchable, InteractsWithSockets, SerializesModels;

  public $user;

  public function __construct(User $user)
  {
      $this->user = $user;
  }
}
  • Listener

PHP

namespace App\Listeners;

use App\Events\UserRegistered;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Support\Facades\Mail;

class SendWelcomeEmail
{
    public function handle(UserRegistered $event)
    {
        Mail::to($event->user->email)->send(new WelcomeEmail($event->user));
    }
}

Disparando um Evento

PHP

// Disparando o evento quando um novo usuário é registrado
event(new UserRegistered($user));

Testando Eventos

Para garantir a qualidade dos seus eventos, é fundamental escrever testes unitários. Utilizando o PHPUnit e o Mockery, podemos testar se os eventos são disparados corretamente e se os listeners executam as ações esperadas.

PHP

public function testUserRegisteredEventIsDispatched()
{
    Event::fake();

    $user = factory(User::class)->create();

    event(new UserRegistered($user));

    Event::assertDispatched(UserRegistered::class);
}

Conclusão

Laravel Events: Os eventos no Laravel são uma ferramenta poderosa para criar aplicações desacopladas e flexíveis. Ao dominar os conceitos de criação, registro e teste de eventos, você poderá construir aplicações mais robustas e escaláveis.

Ao utilizar eventos, você permite que diferentes partes de sua aplicação se comuniquem de forma assíncrona, facilitando a manutenção e a adição de novas funcionalidades. Além disso, os testes unitários garantem que seus eventos funcionem corretamente, evitando problemas em produção.

Mas antes de dominar o Laravel, se for o seu caso, toda jornada tem um início. Vamos entender quais são os conhecimentos básicos necessários para aproveitar ao máximo este poderoso framework. Para iniciar seus estudos no Laravel, você precisará dominar as seguintes tecnologias:

HTML
HTML
CSS
CSS
Javascript
JavaScript
SQL
SQL
Capa Curso PHP
PHP

E se você gosta do nosso conteúdo, não deixe de contribuir adquirindo os serviços e produtos dos nossos apoiadores e empresas que somos associados:

Hospedagem Hostinger
Ofertas Amazon
Amazon Prime
Author: Thiago Rossi

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *