rlerdorf / opcache-status
A one-page opcache status page
Installs: 458 292
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1 567
Watchers: 83
Forks: 371
Open Issues: 0
pkg:composer/rlerdorf/opcache-status
Requires
- php: >=8.2.0
This package is auto-updated.
Last update: 2026-02-25 15:32:46 UTC
README
A single-file OPcache status page for PHP 8.2+. Drop opcache.php into any directory and get a full overview of your OPcache configuration, cached scripts, and health — zero external dependencies.
Features
- Status tab — all
opcache_get_status()metrics at a glance, plus preload script and user whenopcache.preloadis configured - Configuration tab — current directives with changed values highlighted, inline documentation from php.net, human-readable formatting (memory sizes, time values, percentages), and a blacklisted paths section
- Health tab — seven checks (memory, keys, interned strings, JIT buffer, wasted memory, hit rate, file cache) with green/yellow/red/info indicators, progress bars, and tuning suggestions
- Scripts tab — sortable table of all cached scripts by hits, memory, or path with per-script cache invalidation on hover
- Cache management — reset the entire cache or invalidate individual scripts, with confirmation modals that warn about the impact of a full reset
- Auto-refresh — toggle a 5-second reload cycle with a live activity chart showing cache hits/s, misses/s, and memory usage over time
- Donut charts — memory, keys, hits, restarts, and conditionally JIT and interned strings
- Squarified treemap — interactive visualization of cached scripts by memory usage with drill-down navigation, inline and fullscreen modes
- Dark mode — automatic via
prefers-color-scheme - Responsive — CSS Grid layout adapts to narrow screens
- Read-only mode — set
$readonly = trueat the top ofopcache.phpto disable all cache modification actions (reset and invalidate)
Everything is self-contained in a single PHP file with inline CSS and vanilla JavaScript. No jQuery, no D3.js, no CDN scripts.
Usage
Install the package:
composer require --dev rlerdorf/opcache-status dev-master
Drop it where you want it in your public folder:
ln -s vendor/rlerdorf/opcache-status/opcache.php ./public/
Open the file in your browser:
http://127.0.0.1:8000/opcache.php
If the Zend OPcache extension is not loaded, sample data from data-sample.php is shown automatically.
Development
php -S localhost:8000
Then open http://localhost:8000/opcache.php. The fallback to sample data is based on extension_loaded('Zend OPcache'), not opcache.enable.
