Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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

Assets 3
Loading

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
Loading

AltStyle によって変換されたページ (->オリジナル) /