ddouggs/event_manager

Dota o sistema PHP do gerênciamento de eventos nomeados

Maintainers

Package info

github.com/DDouGGS/event_manager

pkg:composer/ddouggs/event_manager

Transparency log

Statistics

Installs: 13

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v0.6.10 2026-07-13 23:56 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
  • null caso 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:

  • Observers
  • ReactionsInterface

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.