Installation:
composer require --dev redaxo/debug:^2.0@dev
bin/console addon:install debug
Ensure you’re in a development environment—this package is not for production.
First Use Case:
/clockwork).Redaxo\Core\Database\Sql).Redaxo\Core\Log\Logger).Redaxo\Core\Util\Timer).Redaxo\Core\ExtensionPoint\*).Quick Check:
Debugging Queries:
Redaxo\Core\Database\Sql for queries. Clockwork auto-instruments them.$sql = new Redaxo\Core\Database\Sql();
$sql->get('SELECT * FROM articles');
Logging Integration:
Redaxo\Core\Log\Logger:
$logger = Redaxo\Core\Log\Logger::getLogger();
$logger->info('User loaded', ['user_id' => 123]);
Timing Code Blocks:
Redaxo\Core\Util\Timer:
$timer = new Redaxo\Core\Util\Timer();
// ... code ...
$timer->stop('rendering_page');
Extension Points:
ExtensionPoint calls (e.g., Redaxo\Core\ExtensionPoint\ExtensionPoint::get('article_list')).Custom Data:
Use Clockwork’s store() method to log custom data:
\Clockwork\Clockwork::store('custom_data', ['key' => 'value']);
Accessible via the "Custom" tab in Clockwork.
Middleware:
Add Clockwork to REDAXO’s middleware stack (if needed) via config/debug.php:
'middleware' => [
\Redaxo\Debug\Middleware\ClockworkMiddleware::class,
],
Queue Jobs: Clockwork supports queue jobs. Ensure your REDAXO queue worker is configured to use Clockwork’s listener.
Browser Extension:
Install the Clockwork Chrome/Firefox extension for real-time insights without appending /clockwork to URLs.
Production Leakage:
if (app()->environment('local')) {
\Clockwork\Clockwork::enable();
}
Performance Overhead:
'enabled' => app()->environment(['local', 'staging'] === false),
Missing Data:
Redaxo\Core\Database\Sql is auto-instrumented; custom classes need manual setup).\Clockwork\Clockwork::enable()).REDAXO-Specific Quirks:
Redaxo\Core\Database\Sql queries are tracked. Raw PDO queries won’t appear.Redaxo\Core\Log\Logger logs are captured. Use Clockwork\Clockwork::store() for other logs.Clockwork Not Loading:
config/debug.php for correct middleware configuration./clockwork route is accessible (may require REDAXO route adjustments).Custom Instrumentation:
span():
\Clockwork\Clockwork::span('my_process', function() {
// Code to profile
});
Log Context:
$logger->info('Error loading article', [
'article_id' => 42,
'trace' => $e->getTraceAsString(),
]);
Extension Points:
Custom Tabs: Extend Clockwork’s UI by creating a custom tab. Example:
\Clockwork\Clockwork::addTab('my_tab', function() {
return view('clockwork.my_tab');
});
Middleware Hooks:
Override Clockwork’s middleware in config/debug.php:
'middleware' => [
\App\Middleware\CustomClockworkMiddleware::class,
],
Data Sanitization: Redact sensitive data before storing:
\Clockwork\Clockwork::store('user_data', [
'email' => '[email protected]',
'password' => '*****', // Manually redacted
]);
How can I help you explore Laravel packages today?