Laravel Debugging Part 2 - Laravel Debugbar

Laravel Debugging Part 2 - Laravel Debugbar

Learn how to use Laravel Debugbar to monitor and debug your Laravel application in real-time.

Introduction

Laravel Debugbar is a powerful debugging toolbar that provides real-time insights into your application's performance, queries, and more. This guide will show you how to set up and use Debugbar effectively.

Prerequisites

  • Laravel 6.x or higher
  • Composer installed
  • Basic understanding of Laravel

1 Install Laravel Debugbar

Install Debugbar via Composer:

composer require barryvdh/laravel-debugbar --dev

Publish the configuration file:

php artisan vendor:publish --provider="Barryvdh\Debugbar\ServiceProvider"

2 Configure Debugbar

Update your `.env` file:

DEBUGBAR_ENABLED=true
APP_DEBUG=true

Configure options in `config/debugbar.php`:

return [
    'enabled' => env('DEBUGBAR_ENABLED', false),
    'collectors' => [
        'phpinfo' => true,
        'messages' => true,
        'time' => true,
        'memory' => true,
        'exceptions' => true,
        'log' => true,
        'db' => true,
        'views' => true,
        'route' => true,
        'auth' => true,
        'session' => true,
        'symfony_request' => true,
        'mail' => true,
        'laravel' => true,
        'events' => true,
        'default_request' => false,
        'logs' => true,
        'files' => false,
        'config' => true,
    ],
    'options' => [
        'queries' => [
            'timeline' => true,
            'backtrace' => true,
            'explain' => true,
            'hints' => true,
        ],
        'db' => [
            'backtrace' => true,
            'duration_background' => true,
            'explain' => [
                'enabled' => true,
            ],
            'hints' => true,
        ],
    ],
];

3 Using Debugbar

Debugbar will automatically appear at the bottom of your pages when enabled. You can:

  • View database queries and their execution time
  • Monitor memory usage
  • Track route information
  • View session data
  • Check mail messages
  • Monitor events

4 Custom Data Collection

Add custom data to the debugbar:

use Debugbar;

// Add data to the debugbar
Debugbar::info('Custom message');
Debugbar::error('Error message');
Debugbar::warning('Warning message');
Debugbar::addMessage('Another message', 'custom');

// Start a measure
Debugbar::startMeasure('operation-name');
// Your code here
Debugbar::stopMeasure('operation-name');

5 AJAX Requests

Enable debugbar for AJAX requests by adding the header:

$.ajax({
    url: '/api/endpoint',
    headers: {
        'X-Requested-With': 'XMLHttpRequest'
    }
});

Key Features Covered

  • Installation and setup
  • Configuration options
  • Data collection
  • Performance monitoring
  • AJAX support
  • Custom data logging

Best Practices

  • Disable in production
  • Use for development only
  • Monitor performance impact
  • Configure collectors based on needs
  • Use custom data collection wisely

Common Issues

  • Performance overhead
  • Memory usage
  • AJAX request issues
  • Configuration conflicts
  • Asset loading problems