PHPackages                             ddouggs/incidents - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. ddouggs/incidents

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

ddouggs/incidents
=================

Dota sistema PHP quanto ao gerênciamento de eventos designados

v0.0.1(3mo ago)01↑2900%Apache-2.0PHP

Since Mar 28Pushed 1mo agoCompare

[ Source](https://github.com/DDouGGS/incidents)[ Packagist](https://packagist.org/packages/ddouggs/incidents)[ RSS](/packages/ddouggs-incidents/feed)WikiDiscussions master Synced 3mo ago

READMEChangelog (10)DependenciesVersions (2)Used By (0)

EventManager
============

[](#eventmanager)

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
=========

[](#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
===================

[](#métodos-disponíveis)

add()
-----

[](#add)

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

### Assinatura

[](#assinatura)

```
EventManager::add($name, $observer = null);
```

### Parâmetros

[](#parâmetros)

ParâmetroTipoDescrição`$name`stringNome do evento`$observer`objectObserver opcional### Exemplo

[](#exemplo)

```
EventManager::add('user.created');
```

Com observer:

```
EventManager::add('user.created', new UserObserver());
```

---

record()
--------

[](#record)

Registra uma reação personalizada para um evento.

### Assinatura

[](#assinatura-1)

```
EventManager::record($name, ReactionsInterface $reaction);
```

### Exemplo

[](#exemplo-1)

```
EventManager::record('user.created', new UserReaction());
```

---

retrieve()
----------

[](#retrieve)

Recupera um evento registrado.

### Assinatura

[](#assinatura-2)

```
EventManager::retrieve($name);
```

### Retorno

[](#retorno)

- Objeto do evento
- `null` caso não exista

### Exemplo

[](#exemplo-2)

```
$event = EventManager::retrieve('user.created');
```

---

exists()
--------

[](#exists)

Verifica se um evento existe.

### Assinatura

[](#assinatura-3)

```
EventManager::exists($name);
```

### Retorno

[](#retorno-1)

```
true | false
```

### Exemplo

[](#exemplo-3)

```
if (EventManager::exists('user.created')) {
    // evento existe
}
```

---

attach()
--------

[](#attach)

Adiciona um observer a um evento existente.

### Assinatura

[](#assinatura-4)

```
EventManager::attach($name, $observer);
```

### Exemplo

[](#exemplo-4)

```
EventManager::attach('user.created', new UserObserver());
```

---

deattach()
----------

[](#deattach)

Remove um observer de um evento.

### Assinatura

[](#assinatura-5)

```
EventManager::deattach($name, $index);
```

### Exemplo

[](#exemplo-5)

```
EventManager::deattach('user.created', 'UserObserver');
```

---

notify()
--------

[](#notify)

Notifica todos os observers registrados para o evento.

### Assinatura

[](#assinatura-6)

```
EventManager::notify($name, &$paramn);
```

### Parâmetros

[](#parâmetros-1)

ParâmetroTipoDescrição`$name`stringNome do evento`$paramn`objectObjeto enviado aos observers### Exemplo

[](#exemplo-6)

```
$user = new stdClass();
$user->name = 'John';

EventManager::notify('user.created', $user);
```

---

clear()
-------

[](#clear)

Remove todos os observers de um evento.

### Assinatura

[](#assinatura-7)

```
EventManager::clear($name);
```

### Exemplo

[](#exemplo-7)

```
EventManager::clear('user.created');
```

---

keys()
------

[](#keys)

Lista todos os observers registrados no evento.

### Assinatura

[](#assinatura-8)

```
EventManager::keys($name);
```

### Exemplo

[](#exemplo-8)

```
$list = EventManager::keys('user.created');
```

---

Exemplo Completo
================

[](#exemplo-completo)

Criando um Observer
-------------------

[](#criando-um-observer)

```
class UserObserver
{
    public function user_created($user)
    {
        echo "Usuário criado: {$user->name}";
    }
}
```

---

Registrando Evento
------------------

[](#registrando-evento)

```
EventManager::add('user_created');
```

---

Adicionando Observer
--------------------

[](#adicionando-observer)

```
EventManager::attach('user_created', new UserObserver());
```

---

Disparando Evento
-----------------

[](#disparando-evento)

```
$user = new stdClass();
$user->name = 'Maria';

EventManager::notify('user_created', $user);
```

---

Fluxo Básico
============

[](#fluxo-básico)

```
Evento → Observers → Notify → Reações

```

---

Dependências
============

[](#dependências)

Esta classe depende de:

- `Observers`
- `ReactionsInterface`

---

Possíveis Melhorias
===================

[](#possíveis-melhorias)

Alguns pontos podem ser aprimorados na implementação atual:

- Correção do método `clear()`:

```
return (isset($o))? $events[$name] = null: false;
```

Provavelmente deveria ser:

```
return (isset($o)) ? self::$events[$name] = null : false;
```

---

- Correção no método `record()`:

Existe referência a variável inexistente:

```
$observer
```

---

- Melhorar tipagem com PHP 8+

Exemplo:

```
public static function exists(string $name): bool
```

---

Licença
=======

[](#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.

---

###  Health Score

30

—

LowBetter than 62% of packages

Maintenance87

Actively maintained with recent releases

Popularity2

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity24

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

91d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/12718033?v=4)[Douglas Gonçalves de Souza](/maintainers/douggonsouza)[@douggonsouza](https://github.com/douggonsouza)

---

Top Contributors

[![DDouGGS](https://avatars.githubusercontent.com/u/158485475?v=4)](https://github.com/DDouGGS "DDouGGS (20 commits)")

### Embed Badge

![Health badge](/badges/ddouggs-incidents/health.svg)

```
[![Health](https://phpackages.com/badges/ddouggs-incidents/health.svg)](https://phpackages.com/packages/ddouggs-incidents)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
