Skip to content

[NFR]: Debug bar support for ADR / non-MVC apps #13

Description

@niden

Context: phalcon/debugbar can only be booted and injected against a Phalcon\Mvc\Application, and its collectors gather data by subscribing to MVC event names. That makes the bar unusable in an ADR app (Phalcon\ADR), which was discovered while wiring phalcon/vokuro-adr (the bar is a dependency there but entirely unused). The goal is to make the bar work on ADR - and, by construction, on any framework - without forcing Phalcon\Di\DiInterface back into the ADR delivery ring. Motivation: ADR is a strong pattern for HTML apps, not only JSON, and the debug bar should not be MVC-only.

Events-manager strategy #15

The root coupling is that collectors know framework event names. Break it with three layers:

  1. A canonical debug-bar signal set the bar owns — a small, stable vocabulary (query, view.rendered, route.matched, request.received, response.sending). Collectors subscribe only to these.
  2. A per-framework bridge that maps native signals to canonical ones — MVC listens to db:afterQuery / view:* / router:matchedRoute; ADR listens to PIPELINE_* / APPLICATION_* or instruments directly.
  3. A direct push API on collectors for hosts with no events manager — the bridge pushes.

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

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

Status
Backlog

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions