What's New
Query → Action Linking
Every SQL query now knows which controller action spawned it. A new Route column in the Queries tab shows the parent action (e.g. product/product), and the Actions tab shows query count per route — making it easy to spot query-heavy controllers.
Start Column (Actions & Queries)
Both tabs now show a Start column with the offset from page start (+15 ms). Sort by Start to see the exact execution order — actions and their queries in chronological sequence.
Dynamic Route Names
Replaced the hardcoded 28-entry debugRouteName() mapping with the actual route from OpenCart's Action::$id. Every controller — including custom modules — now shows its route automatically (common/home, product/category, etc.).
Adaptive Column Widths
All tables switched from table-layout: fixed to auto. Columns size themselves to content — no more truncated values or wasted space. Content columns (SQL, server variables) wrap naturally while numeric columns stay compact.
View Timing & Timeline (from v3.0.0 cycle)
- View vs Logic split: each action shows how much time was spent in
$template->render()vs PHP logic - Timeline bar: visual representation of when each action ran relative to page load, with green (logic) and blue (view) segments
- Sortable & filterable tables in both Actions and Queries tabs
Debug Helpers (from v3.0.0 cycle)
xdump($value, 'label')/xdd($value)— available in all controllers, models, and views{{ dump() }}in Twig templates via DebugExtension- Output appears in a dedicated Dumps tab
Full changelog: v3.0.0...v3.1.0