Debugbar
Learn how to inspect queries, performance, and application state with the Debugbar.
The October CMS Debugbar integrates Laravel Debugbar (opens new window) with October CMS. It displays a toolbar at the bottom of every page showing database queries, memory usage, request data, and more. Custom data collectors are included for backend controllers, CMS pages, components, and models.
# Installation
Install the package as a dev dependency using Composer.
composer require october/debugbar --dev
The debugbar is enabled automatically when APP_DEBUG=true in your .env file. You can override this with the DEBUGBAR_ENABLED environment variable.
DEBUGBAR_ENABLED=true
# What You'll See
Once installed, a dark toolbar appears at the bottom of every page (both frontend and backend). It includes tabs for the following.
| Tab | Description |
|---|---|
| Messages | Messages logged with debug() or debugbar()->info() |
| Timeline | Request lifecycle with timing breakdown |
| Exceptions | Any exceptions thrown during the request |
| Queries | All database queries with bindings and execution time |
| Route | The matched route and middleware |
| Session | Current session data |
| Request | Request headers, cookies, and server variables |
| Emails sent during the request |
# October CMS Collectors
In addition to the standard collectors, the following October-specific tabs are included.
| Collector | Description |
|---|---|
| Backend | Shows the backend controller, action, parameters, and AJAX handler with file location |
| CMS | Shows the CMS page, URL, AJAX handler, and page properties with file location |
| Components | Lists all components from the page and layout with their class and properties |
# Logging Messages
You can send messages to the debugbar using the debug() helper anywhere in your code.
debug('Hello from the debugbar');
debug($myVariable);
For more control, resolve the debugbar instance directly.
debugbar()->info('Informational message');
debugbar()->warning('Something looks off');
debugbar()->error('Something went wrong');
debugbar()->addMeasure('my-operation', $startTime, $endTime);
In Twig templates, you can use the dump function to inspect variables.
{{ dump(page) }}
# Configuration
Publish the configuration file to customize collector settings.
php artisan vendor:publish --provider="October\Debugbar\ServiceProvider" --tag=config
Or create config/debugbar.php manually. Common options include enabling or disabling specific collectors.
return [
'collectors' => [
'db' => true, // Database queries
'views' => false, // Views with their data
'events' => false, // All events fired
'cache' => false, // Cache events
],
'options' => [
'db' => [
'with_params' => true, // Show query parameters
'backtrace' => true, // Show query origin in code
],
],
];
# AJAX Debugging
AJAX requests are captured by the debugbar automatically and displayed in the toolbar dropdown. To disable this, set capture_ajax to false in config/debugbar.php.
# Disabling the Debugbar
The debugbar is automatically disabled when APP_DEBUG=false. To explicitly disable it regardless of the debug setting, add the following to your .env file.
DEBUGBAR_ENABLED=false
The debugbar should never be enabled in production environments. It exposes sensitive information including database queries, session data, and application internals.