ddouggs / event_manager
Dota o sistema PHP do gerênciamento de eventos nomeados
Requires
- ddouggs/test_command: v0.*.*
This package is not auto-updated.
Last update: 2026-07-13 23:58:23 UTC
README
Sistema simples de gerenciamento de eventos e observadores em PHP utilizando o padrão Observer.
A classe EventManager permite:
- Registrar eventos
- Adicionar observadores (observers)
- Notificar listeners
- Registrar reações customizadas
- Recuperar eventos registrados
- Remover observers
- Listar observers ativos
Estrutura
namespace event_manager; use event_manager\Observers; abstract class EventManager
A classe utiliza um array estático para armazenar todos os eventos registrados:
public static $events = array();
Métodos Disponíveis
add()
Registra um novo evento ou adiciona um observer a um evento existente.
Assinatura
EventManager::add($name, $observer = null);
Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
$name |
string | Nome do evento |
$observer |
object | Observer opcional |
Exemplo
EventManager::add('user.created');
Com observer:
EventManager::add('user.created', new UserObserver());
record()
Registra uma reação personalizada para um evento.
Assinatura
EventManager::record($name, ReactionsInterface $reaction);
Exemplo
EventManager::record('user.created', new UserReaction());
retrieve()
Recupera um evento registrado.
Assinatura
EventManager::retrieve($name);
Retorno
- Objeto do evento
nullcaso não exista
Exemplo
$event = EventManager::retrieve('user.created');
exists()
Verifica se um evento existe.
Assinatura
EventManager::exists($name);
Retorno
true | false
Exemplo
if (EventManager::exists('user.created')) { // evento existe }
attach()
Adiciona um observer a um evento existente.
Assinatura
EventManager::attach($name, $observer);
Exemplo
EventManager::attach('user.created', new UserObserver());
deattach()
Remove um observer de um evento.
Assinatura
EventManager::deattach($name, $index);
Exemplo
EventManager::deattach('user.created', 'UserObserver');
notify()
Notifica todos os observers registrados para o evento.
Assinatura
EventManager::notify($name, &$paramn);
Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
$name |
string | Nome do evento |
$paramn |
object | Objeto enviado aos observers |
Exemplo
$user = new stdClass(); $user->name = 'John'; EventManager::notify('user.created', $user);
clear()
Remove todos os observers de um evento.
Assinatura
EventManager::clear($name);
Exemplo
EventManager::clear('user.created');
keys()
Lista todos os observers registrados no evento.
Assinatura
EventManager::keys($name);
Exemplo
$list = EventManager::keys('user.created');
Exemplo Completo
Criando um Observer
class UserObserver { public function user_created($user) { echo "Usuário criado: {$user->name}"; } }
Registrando Evento
EventManager::add('user_created');
Adicionando Observer
EventManager::attach('user_created', new UserObserver());
Disparando Evento
$user = new stdClass(); $user->name = 'Maria'; EventManager::notify('user_created', $user);
Fluxo Básico
Evento → Observers → Notify → Reações
Dependências
Esta classe depende de:
ObserversReactionsInterface
Licença
A Licença Apache 2.0 é uma licença de software de código aberto permissiva e popular. Ela permite o uso, modificação, distribuição e comercialização do software, inclusive em projetos fechados, desde que mantenha os créditos de autoria, inclua uma cópia da licença e relate as alterações feitas.