Skip to content

release: v1.0.0 - #5

Merged
ogorzalka merged 14 commits into
mainfrom
develop
Oct 9, 2026
Merged

ogorzalka merged 14 commits into
mainfrom
develop

Conversation

@ogorzalka

Copy link
Copy Markdown
Member

First release of pollora/debugbar, for Pollora v13.35.3: Pollora and WordPress in Laravel Debugbar (phases 1 to 3 of the spec), at Query Monitor parity.

Pollora tab (what answered the request, versions, discovery, modules,
theme, async actions), WP Request, WP Queries, WP Hooks and WordPress
phases on the timeline; REST and admin-ajax requests stored and tagged
with phpdebugbar-id; qm/* and pollora/debugbar/* actions bridged.

Extension points: the Collector base class and container tags for
packages, the pollora/debugbar/register action for WordPress code.
Most of Pollora's callbacks are closures, which all read as "Closure":
first-class callables now read as Class::method and real closures as
the class and file:line they were written in. Tab icons are taken from
php-debugbar's own set; any other name renders as an empty square.
A Playwright job installs the skeleton under DDEV with this package,
adds a fixture mu-plugin that extends the bar both ways (actions and a
tagged Collector), and checks the tabs, their order, the answering
template, wpdb queries, a REST call listed by the bar and the third
party data.
Full backtrace, error and rows for each wpdb query through core filters
(no wpdb subclass, so any db.php drop-in keeps working) and attribution
of queries, HTTP calls, transients and checks to a component. New tabs:
WP HTTP, WP Cache, WP Capabilities (aggregated, on by default), WP
Blocks (with block bindings), WP Assets (with Vite builds), WP Languages
and Doctor (pollora:doctor's web checks on demand). Redirects made with
wp_redirect() are stacked for the next page. The Pollora tab adds the
async actions queued, WordPress constants and drop-ins.
…irectories, readable doctor errors

Each query keeps its 10 innermost frames to show, and is attributed from
its whole trace when it runs: full traces made most of the bar's weight
(309 KB of 411 on a WooCommerce shop page, now 154). Component
directories are not cached until WordPress defines where plugins live,
which had left early lookups without them. The Doctor tab says what
came back when the answer is not JSON (a proxy's 404 while a server
restarts) instead of a JSON syntax error. The Pollora tab adds the
database server, memory limits and web server Query Monitor shows.
- WP Hook timings tab (opt-in, options.wp_hooks.timings): each callback
  wrapped in place in $wp_filter under its own key, own and total time,
  slowest first; by-reference callbacks left alone
- wp-admin: the bar printed with the admin footer scripts and stored,
  without Debugbar's Laravel-only tabs; the block editor's REST calls
  are listed in it
- WP Request: admin page and screen; on a multisite, the site, the
  network, every site switch and a switch never restored
- Hooks: a closure is named after a class only when written in it
The request is still stored; set DEBUGBAR_POLLORA_IFRAMES=true to print
the bar in frames too.
feat: Pollora and WordPress in Laravel Debugbar (phase 1)
feat: Query Monitor parity (phase 2)
feat: hook timings, the bar in wp-admin, multisite (phase 3)
ci: take the framework from Packagist now that v13.35.3 is out
@ogorzalka
ogorzalka merged commit c3f6ba2 into main Oct 9, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant