DEV Community

Lithe
Lithe

Posted on

Manipulando Eventos com Simplicidade em PHP com Lithe Events

O Lithe Events é uma biblioteca leve e poderosa para manipulação de eventos em aplicações PHP. Com ela, você pode facilmente criar, registrar, emitir e remover eventos, criando uma arquitetura desacoplada e flexível. Este guia detalhado irá te ensinar como usar a biblioteca desde a instalação até a implementação completa.


Índice

  1. Instalação
  2. Uso
  3. Usando o Lithe Orbis
  4. Exemplo Completo

Instalação

Para instalar o lithemod/events em seu projeto PHP, você precisará usar o Composer. Execute o seguinte comando no diretório do seu projeto:

composer require lithemod/events
Enter fullscreen mode Exit fullscreen mode

Este comando vai baixar o pacote e atualizar o arquivo composer.json do seu projeto automaticamente, permitindo que você comece a usar a biblioteca.


Uso

Usando a Classe EventDispatcher

A classe EventDispatcher é a peça central para gerenciar eventos e ouvintes. Ela permite que você registre ouvintes, emita eventos e remova ouvintes. Vamos entender como usá-la passo a passo.

Criando um Evento

Para criar um evento, você precisa instanciar a classe Event, que armazena o nome do evento e quaisquer dados adicionais que você deseja associar a ele. Veja um exemplo:

use Lithe\Events\Event;

$event = new Event('event.name', ['key' => 'value']);
Enter fullscreen mode Exit fullscreen mode
  • event.name: O nome do evento, que é uma string que identifica o evento.
  • ['key' => 'value']: Um array associativo opcional que contém os dados adicionais que você deseja passar com o evento.
Registrando Listeners

Agora que você tem o evento, é hora de registrar um ouvinte (listener) que será acionado quando o evento for emitido. Para isso, você usa o método on da classe EventDispatcher.

use Lithe\Events\EventDispatcher;

$dispatcher = new EventDispatcher();

$listener = function ($data) {
    echo "Dados do evento: " . json_encode($data);
};

// Registrar o ouvinte
$dispatcher->on('event.name', $listener);
Enter fullscreen mode Exit fullscreen mode

Aqui, o ouvinte é uma função anônima que será chamada sempre que o evento 'event.name' for emitido. O ouvinte recebe os dados passados pelo evento.

Emitindo Eventos

Para emitir um evento e disparar todos os ouvintes registrados, usamos o método emit da classe EventDispatcher.

$event = new Event('event.name', ['key' => 'value']);
$dispatcher->emit($event);
Enter fullscreen mode Exit fullscreen mode

Quando o evento é emitido, todos os ouvintes registrados para 'event.name' são chamados e recebem os dados do evento.

Removendo Listeners

Se você não precisar mais de um ouvinte para um evento específico, pode removê-lo usando o método off.

$dispatcher->off('event.name', $listener);
Enter fullscreen mode Exit fullscreen mode

Esse código remove o ouvinte da fila de ouvintes para o evento 'event.name'.


Usando Orbis

Lithe Orbis é uma classe poderosa que atua como um gerenciador de instâncias global, permitindo que você abstraia funcionalidades complexas em componentes simples e reutilizáveis. Isso ajuda a tornar o gerenciamento de eventos ainda mais fácil e direto.

Com o Lithe Orbis, você pode usar funções de gerenciamento de eventos de forma mais simples. Aqui está como você pode registrar ouvintes, emitir eventos e removê-los usando as funções da classe Orbis:

Registrando Listeners com Lithe Orbis

Para registrar um ouvinte usando o Lithe Orbis, você pode usar a função on diretamente:

use Lithe\Orbis\Events;

$listener = function ($data) {
    echo "Dados do evento: " . json_encode($data);
};

// Registrar o ouvinte
Events\on('event.name', $listener);
Enter fullscreen mode Exit fullscreen mode

Emitindo Eventos com Lithe Orbis

Para emitir um evento usando o Lithe Orbis, use a função emit:

use Lithe\Orbis\Events;
use Lithe\Events\Event;

$event = new Event('event.name', ['key' => 'value']);
Events\emit($event);
Enter fullscreen mode Exit fullscreen mode

Removendo Listeners com Lithe Orbis

Remover ouvintes usando o Lithe Orbis é tão simples quanto usar a função off:

Events\off('event.name', $listener);
Enter fullscreen mode Exit fullscreen mode

Para mais informações e documentação detalhada sobre o Lithe Orbis, você pode acessar o link da documentação do Orbis.


Exemplo Completo

Agora, vamos ver um exemplo completo utilizando as funções e classes mencionadas. Este exemplo mostra como registrar ouvintes, emitir eventos e removê-los.

use Lithe\Events\Event;
use Lithe\Orbis\Events;

// Criando um ouvinte
$listener = function ($data) {
    echo "Evento recebido com dados: " . json_encode($data) . "\n";
};

// Registrando o ouvinte
Events\on('my.event', $listener);

// Emitindo o evento
$data = ['msg' => 'Olá, mundo!'];
Events\emit(new Event('my.event', $data));

// Removendo o ouvinte
Events\off('my.event', $listener);
Enter fullscreen mode Exit fullscreen mode

Explicação do Exemplo:

  1. Criamos um ouvinte: Esse ouvinte irá exibir os dados do evento sempre que ele for disparado.
  2. Registramos o ouvinte para o evento 'my.event'.
  3. Emitimos o evento com dados associados.
  4. Removemos o ouvinte depois de usá-lo.

O Lithe Events é uma biblioteca simples, porém poderosa, que permite gerenciar eventos de forma eficiente em suas aplicações PHP. Seja para registrar ouvintes, emitir eventos ou removê-los, a biblioteca fornece todas as ferramentas necessárias para criar uma arquitetura modular e desacoplada.

Experimente o Lithe Events em seu próximo projeto e veja como ele pode melhorar a flexibilidade e manutenção do seu código!

Top comments (0)