Download the PHP package konradmichalik/typo3-request-profiler without Composer
On this page you can find all versions of the php package konradmichalik/typo3-request-profiler. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download konradmichalik/typo3-request-profiler
More information about konradmichalik/typo3-request-profiler
Files in konradmichalik/typo3-request-profiler
Package typo3-request-profiler
Short Description Dev-only TYPO3 frontend request profiler that records SQL queries, N+1 patterns, cache state and timing as compact JSON profiles for AI coding assistants.
License GPL-2.0-or-later
Informations about the package typo3-request-profiler
A dev-only TYPO3 frontend request profiler. It instruments live frontend requests and writes one compact JSON profile per request (SQL queries, N+1 patterns, cache state, and timing) to var/log/profiles/{request_id}.json.
[!IMPORTANT] This extension is active by default only in a Development context (
Environment::getContext()->isDevelopment()). Outside Development it stays off and collects no data unless explicitly opted in; see Activation.
The profiler is a thin, standalone collector with no external dependencies. It is inspired by the Symfony Profiler and by some of the metrics the TYPO3 Admin Panel surfaces, but records them as compact, machine-readable JSON instead of an interactive panel.
✨ Features
- Timing and memory: wall-clock and SQL timing, peak memory usage, included PHP file count
- Query analysis: full query count, top slow queries, and N+1 duplicate detection
- Outgoing HTTP client calls: count, total time, and the slowest requests
- Cache state: hit/miss with disabled reasons
- Log activity: count by level and the noisiest components
- Optional query tracing: call-site origin (
Class::method (file:line)) for every flagged query, see Configuration - Optional PSR-14 event timing: count and the most expensive event classes, see Configuration
- Uncaught exceptions: class, file, and line, never the message, even though no response was produced
🔥 Installation
Requirements
- TYPO3 13.4 LTS & 14.0+
- PHP 8.2+
- Doctrine DBAL 3.x or 4.x
Composer
TER
Download the zip file from TYPO3 extension repository (TER).
🚀 Quick start
Start it up in a Development context (no configuration needed) and every request writes a compact JSON profile to var/log/profiles/{request_id}.json:
That's the gist. The full artifact also carries cache state, memory usage, PHP include count, N+1 duplicate-query detection, log activity, and optional PSR-14 event timing. See Profile Format for the complete schema.
🔗 Related
typo3-ai-mate: asymfony/ai-matebridge that serves these profiles to AI coding assistants over MCP
📚 Documentation
| Topic | What's inside |
|---|---|
| Activation | Development context, forcing it elsewhere via an env var, the profiler:activate CLI toggle, and the HTTP header trigger for per-request correlation |
| Configuration | Sampling threshold, retention, query tracing, and PSR-14 event timing |
| Profile Format | The full JSON schema, provenance metadata, and the ProfileReader read API |
🧑💻 Contributing
Please have a look at CONTRIBUTING.md.
⭐ License
This project is licensed under GNU General Public License 2.0 (or later).
All versions of typo3-request-profiler with dependencies
doctrine/dbal Version ^3.9 || ^4.0
guzzlehttp/promises Version ^2.0
psr/event-dispatcher Version ^1.0
psr/http-message Version ^1.0 || ^2.0
psr/http-server-handler Version ^1.0.2
psr/http-server-middleware Version ^1.0.2
psr/log Version ^3.0.2
symfony/console Version ^6.4 || ^7.0 || ^8.0
typo3/cms-core Version ^13.4 || ^14.0
typo3/cms-frontend Version ^13.4 || ^14.0