Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[NFR]: Decouple collectors from framework event names (bridge + canonical signals)

Abierto
#15 0 comentarios 0 reacciones 1 asignado Ver en GitHub

Los mantenedores suelen responder en 3 días

@niden ya está trabajando en esto.

Desde el 22/7/2026.

Evaluación

Este issue todavía no se ha evaluado.

Descripción

enhancement
Summary

Collectors gather data by subscribing to MVC-specific event names, so nothing collects under ADR or any non-MVC stack. Introduce a neutral seam - a canonical debug-bar signal set, a per-framework bridge, and a direct push API - so collectors receive data regardless of the host application's event vocabulary, or the absence of one.

Current coupling

Collectors call subscribe(ManagerInterface $eventsManager) and attach to framework event names:

  • DatabaseCollector → db:beforeQuery, db:afterQuery
  • ViewCollector → view:beforeRenderView, view:afterRenderView
  • RouteCollector → router:matchedRoute
  • ExceptionsCollector → dispatch:beforeException
  • CacheCollector → cache events

These names are emitted by the MVC stack. ADR fires a different vocabulary (APPLICATION_*, ADR_*, PIPELINE_*), and some hosts have no events manager at all.

Proposed direction (three layers)
  1. Canonical signal set owned by the bar - a small, stable vocabulary (query, view.rendered, route.matched, request.received, response.sending). Collectors subscribe only to these.
  2. Per-framework bridge that maps native signals to canonical ones. The MVC bridge listens to db:afterQuery / view:* / router:matchedRoute and re-emits canonical signals (current behavior, refactored behind the bridge). The ADR bridge listens to PIPELINE_* / APPLICATION_*, or instruments directly where no matching event exists.
  3. Direct push API on collectors (e.g. record(...)) for hosts with no events manager - the bridge pushes directly.

The events manager becomes an implementation detail of the active bridge, not a hard dependency of the collectors.

Acceptance
  • A collector receives data through the canonical signals with no reference to a framework-specific event name.
  • The MVC bridge preserves current behavior (as used by phalcon/vokuro), verified by the existing tests.
  • A collector can be fed with no events manager present (push API).
Lenguaje dominante
PHP
Estrellas
6
Forks
3
Merge medio
1 d 17 h
PR fusionados (30 d)
3

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de phalcon/debugbar

Todos los issues de phalcon/debugbar

Issues similares

Más issues de PHP

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.