maximebf/debugbar
PHP Debug Bar adds a developer toolbar to PHP apps, collecting messages, database queries, timelines, exceptions, and rendered views. Framework-agnostic with integrations for Laravel, Symfony, and more, it helps profile and debug requests in the browser.
Architecture fit
maximebf/debugbar (now published as php-debugbar/php-debugbar) is a framework-agnostic PHP profiling library: collectors gather request data (queries, timings, logs, exceptions, memory), a renderer emits a JS/CSS bundle plus a JSON payload, and the browser renders the bar. It is not a Laravel package and has no service provider, config file, or middleware of its own. In a Laravel codebase it belongs behind barryvdh/laravel-debugbar, which is the maintained wrapper and the only integration path I would sanction. Consuming the base library directly means rebuilding the service provider, config surface, and enable/disable gating that the wrapper already provides — no product value in that.
The architecture that matters is the boundary: debugbar data must never exist in a production request path. That is a configuration and deployment concern, not a library concern, which means the risk lands on us, not upstream.
Integration feasibility
High. Single Composer dependency, --dev scoped, no schema changes, no external services required (the PDO/Redis storage backends are optional and only needed for cross-request profiling). Expected effort to first working bar in local: under a day for one engineer. Effort to do it safely across shared staging: one to two days including gating, config review, and a leak check.
Technical risk
enabled + IP allowlist + APP_DEBUG conjunction, verified per environment.maximebf/debugbar to php-debugbar/php-debugbar. A stale require line or an old lockfile will silently pin an unmaintained fork. Pin the current name and an explicit version.Dependents: 0 and a release date of 2026-10-25 are both implausible for a library that underpins one of the most-installed Laravel dev packages. Treat the score inputs as unreliable and validate version/activity directly against Packagist and the repo before committing.Key questions
barryvdh/laravel-debugbar) as the only supported entry point, and forbid direct use of the base library outside it?Stack fit
Laravel-native via the wrapper. The base library is the engine; the wrapper is the product. Treat php-debugbar/php-debugbar as a transitive, version-pinned dependency and instrument the wrapper, not the library.
Migration path
barryvdh/laravel-debugbar under require-dev; Composer resolves the underlying debugbar version.enabled to a strict expression (APP_DEBUG && in_array(request()->ip(), allowlist)), not the default.maximebf\DebugBar\* directly, migrate to DebugBar\* (the current namespace) and delete the direct dependency.Compatibility
Verify against our actual PHP and Laravel versions before pinning — the wrapper's major versions track Laravel majors, and a mismatch here is the most likely source of a failed rollout. Also confirm the JS bundle behaves under our CSP; if we run a strict script-src, inline debugbar scripts will be blocked and the bar will render empty. That is a config fix, but it must be discovered in staging, not by a developer assuming the tool is broken.
Sequencing
enabled true by default, never commit APP_DEBUG=true.Maintenance
Low. Dev-only dependency, no production runtime, MIT license, active upstream, no transitive bloat beyond the library itself. Cost is a periodic version bump tracked with the Laravel upgrade cadence. Budget a few hours per major Laravel bump.
Support
Community-maintained, no vendor SLA. Acceptable for a developer tool; unacceptable if any team starts treating it as a required debugging path for production incidents. Keep an alternative (logs, Telescope, APM) as the sanctioned prod story so there is no pressure to enable debugbar where it does not belong.
Scaling
Does not scale horizontally by design — it is a per-request, single-browser tool. The failure mode at scale is not load; it is a developer enabling the storage backends on a shared database and accumulating profiling rows indefinitely. If storage backends are enabled anywhere, they need a retention policy and a separate table namespace.
Failure modes
--dev so this cannot reach production.maximebf vendor reference → pinned to an abandoned release with no security updates.Ramp-up
Negligible for anyone who has used Laravel Debugbar; one short doc and a config snippet covers new hires. The real onboarding cost is the policy, not the tool: engineers must internalize that enabling it outside local is a change requiring review, not a convenience toggle.
Recommendation: Adopt, dev-only, via the wrapper, with gating enforced in config and reviewed in PRs. The capability is commoditized (opportunity score 38.45 reflects that) — there is no strategic advantage here, only a modest developer-productivity gain. Approve as a low-cost default; do not invest engineering time in a custom integration or in the base library directly.
How can I help you explore Laravel packages today?