承接 ddouggs/event_manager 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

ddouggs/event_manager

最新稳定版本:v0.5.8

Composer 安装命令:

composer require ddouggs/event_manager

包简介

Dota o sistema PHP do gerênciamento de eventos nomeados

README 文档

README

Uma implementação simples de gerenciamento de eventos baseada no padrão Observer, permitindo registrar eventos, adicionar/remover observadores e notificar listeners de forma desacoplada.

🚀 Visão Geral

A classe EventManager fornece uma estrutura estática para:

  • Registrar eventos
  • Associar observadores a eventos
  • Notificar observadores quando um evento ocorre
  • Gerenciar o ciclo de vida dos observers

Ela depende da classe Observers, responsável por armazenar e executar os observadores.

🧠 Conceitos

  • Evento: Identificado por um nome (string)
  • Observer (Observador): Um objeto que contém um método com o mesmo nome do evento
  • Notificação: Execução dos métodos dos observadores registrados

📚 Métodos

add($name, $observer = null)

Registra um novo evento ou adiciona um observador a um evento existente.

EventManager::add('onUserCreate', $observer);
  • $name: Nome do evento
  • $observer: Objeto com método correspondente ao evento

retrieve($event)

Retorna o objeto do evento registrado.

$event = EventManager::retrieve('onUserCreate');

exists($event)

Verifica se o evento existe.

EventManager::exists('onUserCreate'); // true ou false

attach($event, $observer)

Adiciona um observador a um evento existente.

EventManager::attach('onUserCreate', $observer);

deattach($event, $index)

Remove um observador de um evento.

EventManager::deattach('onUserCreate', 'ObserverClassName');

notify($event, &$paramn)

Notifica todos os observadores do evento.

EventManager::notify('onUserCreate', $data);
  • $paramn deve ser um objeto (passado por referência)

clear($event)

Remove todos os observadores de um evento.

EventManager::clear('onUserCreate');

keys($event)

Lista os observadores registrados no evento.

$list = EventManager::keysObservers('onUserCreate');

🧩 Exemplo de Uso

class UserObserver {
    public function onUserCreate($data) {
        echo "Usuário criado: " . $data->name;
    }
}

// Criar observer
$observer = new UserObserver();

// Registrar evento + observer
EventManager::add('onUserCreate', $observer);

// Disparar evento
$data = (object)['name' => 'João'];
EventManager::notify('onUserCreate', $data);

⚠️ Regras Importantes

  • O observer deve ser um objeto
  • O observer deve possuir um método com o mesmo nome do evento
  • O parâmetro passado em notify deve ser um objeto
  • Eventos são armazenados estaticamente (escopo global da aplicação)

🏗️ Estrutura Interna

  • EventManager::$events: Array estático que armazena os eventos
  • Cada evento é uma instância da classe Observers

📌 Possíveis Melhorias

  • Suporte a closures/callbacks
  • Namespaces mais desacoplados
  • Tratamento de exceções mais granular
  • Logs de execução

📄 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…

统计信息

  • 总下载量: 10
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Apache-2.0
  • 更新时间: 2026-04-01

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固