Skip to content

[NFR]: Collector source adapters for ADR data sources (DB / View / Route) #16

Description

@niden

Summary

Even once collectors are decoupled from event names, three collectors have no data source under ADR, because the ADR stack uses different technologies than MVC. Provide one source adapter per collector, selectable per application, so DB, View, and Route data can be collected in an ADR app (phalcon/vokuro-adr as the reference).

Missing data sources under ADR

  • Database - ADR uses Phalcon\DataMapper\Pdo\Connection, which does not fire db:beforeQuery / db:afterQuery. Needs a DataMapper source (a profiler or a decorating connection) alongside the MVC Db\Adapter (events) source - two adapters feeding one query signal.
  • View - ADR renders .phtml through Phalcon\Mvc\View\Simple with no events manager attached, so view:* never fires. Needs a source that instruments the ADR renderer/responder, or attaches an events manager to Simple.
  • Route - ADR uses Phalcon\ADR\Router, not the MVC router, so router:matchedRoute never fires. Needs an ADR route source.

Proposed direction

  • Define a per-collector source contract, and provide two implementations where relevant (MVC and ADR/DataMapper). The active bridge selects the appropriate source.
  • Ship the DataMapper DB source as the first concrete second-adapter - the most valuable, and the clearest example of "two adapters, one collector".

Acceptance

  • In an ADR app, the Database, View, and Route collectors show real data.
  • The MVC sources are unchanged.

Depends on

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