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
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
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']);
- 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);
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);
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);
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);
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);
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);
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);
Explicação do Exemplo:
- Criamos um ouvinte: Esse ouvinte irá exibir os dados do evento sempre que ele for disparado.
-
Registramos o ouvinte para o evento
'my.event'
. - Emitimos o evento com dados associados.
- 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)