Eventos
Eventos são um conceito fundamental em muitas aplicações, permitindo que diferentes partes do sistema se comuniquem de forma eficiente e desacoplada. No contexto do Lithe, eventos permitem que você reaja a ações específicas que ocorrem em sua aplicação, como o registro de um usuário ou a conclusão de um processamento.
Registrando Manipuladores de Eventos
Para que a sua aplicação reaja a eventos específicos, utilize o método on
para registrar um manipulador. Este método aceita dois parâmetros: o nome do evento que você deseja escutar e uma função de manipulador que será chamada sempre que o evento for emitido.
$app->on('user.registered', function($user) {
echo "Usuário registrado: " . $user->name;
});
Neste exemplo, toda vez que um usuário for registrado, a função fornecida como manipulador será executada, exibindo o nome do usuário. Isso permite que você adicione facilmente comportamentos adicionais sempre que esse evento ocorrer, como enviar um e-mail de boas-vindas ou registrar informações no log.
Removendo Manipuladores de Eventos
Às vezes, você pode querer desativar a resposta a um evento, por exemplo, quando um manipulador não é mais necessário. Para isso, utilize o método off
da classe Lithe\App
ou a função de atalho Lithe\Orbs\App\off
. Este método também aceita dois parâmetros: o nome do evento e o manipulador que você deseja remover.
$app->off('user.registered', $handler);
Aqui, $handler
refere-se à função que você havia registrado anteriormente. Usar off
ajuda a evitar chamadas desnecessárias a manipuladores que não são mais relevantes, mantendo sua aplicação limpa e eficiente.
Emitindo Eventos
Quando você quiser notificar a sua aplicação de que algo aconteceu (como o registro de um usuário), utilize o método emit
. Esse método também pertence à classe Lithe\App
ou pode ser chamado através da função de atalho Lithe\Orbs\App\emit
. Ele aceita o nome do evento e quaisquer argumentos adicionais que você deseja passar para os manipuladores registrados.
$app->emit('user.registered', $newUser);
Nesse caso, o evento user.registered
é disparado, e o objeto $newUser
é passado para os manipuladores registrados. Isso permite que os manipuladores acessem informações relevantes sobre o evento que ocorreu.
Lithe\Orbs\App
Atalhos em Os atalhos fornecem uma maneira conveniente de acessar os métodos de eventos diretamente, sem a necessidade de instanciar a classe Lithe\App
. Você pode usar as seguintes funções para facilitar o uso de eventos:
use function Lithe\Orbs\App\{on, off, emit};
on('event.name', $handler);
off('event.name', $handler);
emit('event.name', $arg1, $arg2);
Isso simplifica o processo de registro, remoção e emissão de eventos, tornando o código mais direto e legível.
Gerenciar eventos em Lithe permite uma comunicação eficiente entre componentes da sua aplicação, tornando-a mais dinâmica e modular. Utilizando os métodos on
, off
e emit
, você pode registrar manipuladores de forma eficaz e disparar eventos conforme necessário. Essa abordagem não apenas melhora a organização do código, mas também facilita a manutenção e a expansão futura da sua aplicação.