Skip to content

Releases: starychenko/opencart-debug

Release list

v3.1.0

Choose a tag to compare

@starychenko starychenko released this 08 Feb 13:12

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

v3.0.0

Choose a tag to compare

@starychenko starychenko released this 08 Feb 10:54

ocXRay v3.0.0 — Major Rewrite

What's New

  • Rebrand: Debug Panel → ocXRay — Debug Profiler
  • New UI: Dark theme (Catppuccin Mocha), fully isolated from host page CSS (all: initial + #dbg scoping)
  • Drag-to-resize panel with persistent height
  • N+1 query detection — highlights repeated query patterns
  • Admin toggle: System → Settings → Server → ocXRay (file-based flag, zero overhead when off)

Architecture Changes

  • OCMOD target changed: response.php instead of framework.php — works on all OpenCart 3.x versions (3.0.3.x and 3.0.4.x)
  • Activation: file-based ocxray_enabled flag instead of DB constant (avoids infinite recursion in mysqli.php patch)
  • Raw superglobals in Requests tab to avoid double HTML encoding from OpenCart's Request::clean()

Bug Fixes

  • Fix panel not appearing on any OpenCart 3.x (framework.php never loaded via modification())
  • Fix double HTML encoding (" shown literally) in Requests tab
  • Fix N+1 table styles leaking from Bootstrap
  • Fix slideToggle overriding flex layout
  • Fix CSS !important blocking JS inline style updates

Installation

  1. Upload ocXRay.ocmod.zip via Extensions → Installer
  2. Refresh OCMOD cache: Extensions → Modifications → Refresh
  3. Enable: System → Settings → Edit → Server tab → ocXRay Debug Panel → Yes