Skip to main content

How to Use Debugger in Laravel – A Complete Guide

How to Use Debugger in Laravel – A Complete Guide

Debugging is an essential part of development. Laravel provides multiple tools and techniques to help you find and fix issues faster. In this guide, you’ll learn how to effectively use Laravel Debugbar, Xdebug, and built-in debugging functions.

🔧 1. Using Laravel Debugbar

Laravel Debugbar is a developer toolbar that shows request details, queries, memory usage, and much more in your browser.

👉 Step 1: Install Debugbar


composer require barryvdh/laravel-debugbar --dev
  

👉 Step 2: Publish the config (optional)


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

✅ Features:

  • Query log with time
  • Request and response headers
  • Route info
  • Auth info
  • Rendered views
  • Memory usage and performance

After installation, visit any Laravel page and you'll see a Debugbar at the bottom of your browser with useful debug information.

🧪 2. Using dump() and dd() Functions

Laravel offers dump() and dd() (dump and die) to debug data anywhere in your code.

🔍 dump()


dump($user);
  

Displays the value of the variable and continues execution.

⛔ dd()


dd($request->all());
  

Dumps the data and stops the script immediately. Perfect for quick debugging.

✅ Bonus: dd() supports multiple values


dd($user, $posts);
  

🧠 3. Using logger() for Debug Logs

If you want to log debug messages to the log file, use the logger() helper or Laravel's Log facade.


logger('User not found!');
Log::debug('User data', ['id' => $id]);
  

Logs will be stored in storage/logs/laravel.log

🧠 4. Using Xdebug with VS Code or PhpStorm

Xdebug is a PHP extension that allows you to set breakpoints, step through code, and inspect variables using an IDE.

🛠️ Step 1: Install Xdebug

Install using your system package manager or by editing php.ini.

🛠️ Step 2: Configure Xdebug


xdebug.mode = debug
xdebug.start_with_request = yes
xdebug.client_port = 9003
  

🛠️ Step 3: Use with IDE

  • Install PHP Debug extension in VS Code
  • Create launch.json with proper settings
  • Set breakpoints and run debugger

🧰 5. Use `ray()` for Clean Debugging (Optional Tool)

Laravel Ray is a package that shows debug output in a desktop app. Clean and developer-friendly.


composer require spatie/laravel-ray --dev
ray($data);
  

🧯 6. Handling Exceptions

All uncaught exceptions are handled by Laravel's app/Exceptions/Handler.php. You can customize error reporting or render custom messages here.

✅ Summary

  • Debugbar – Visual debug info for requests and queries
  • dd(), dump() – Quick inline debugging
  • logger() – Write messages to log files
  • Xdebug – Step-by-step debugging in IDEs
  • Laravel Ray – Optional GUI for debugging (premium)

Using the right debugger makes your Laravel development faster, cleaner, and more professional. Start small with dd() and Debugbar, and level up with Xdebug or Ray.


📚 Want More?

Follow me on The Learn with Rana and connect on LinkedIn for more Laravel, JavaScript, and backend tips!

Comments

Popular posts from this blog

How to Display Flash Messages in EJS using Node.js and Express

Displaying Flash Messages in EJS with Node.js and Express Flash messages are a great way to give users quick feedback — like "Login successful!" or "Please enter all fields!" . In this guide, you’ll learn how to implement them using: express-session connect-flash EJS templating 📦 Step 1: Install Required Packages npm install express express-session connect-flash ejs ⚙️ Step 2: Setup Express App and Middleware const express = require('express'); const session = require('express-session'); const flash = require('connect-flash'); const app = express(); // Set view engine app.set('view engine', 'ejs'); // Middleware app.use(express.urlencoded({ extended: true })); app.use(session({ secret: 'yourSecretKey', resave: false, saveUninitialized: true })); app.use(flash()); // Make flash messages available to all views app.use((req, res, next) => { res.lo...

Realtime Device Tracker using Node.js, Socket.IO & Leaflet

Realtime Device Tracker using Node.js, Socket.IO & Leaflet In this tutorial, you’ll learn how to build a realtime location tracking application that uses the browser’s GPS, Socket.IO for live communication, and Leaflet.js to display users on a map. 🚀 Project Overview Backend: Node.js, Express.js, Socket.IO Frontend: HTML, Leaflet.js, Socket.IO client Features: Live GPS tracking, multi-user map, disconnect cleanup 📁 Folder Structure project-root/ ├── app.js ├── package.json ├── src/ │ ├── public/ │ │ ├── css/ │ │ │ └── style.css │ │ └── js/ │ │ └── script.js │ ├── routes/ │ │ └── routers.js │ ├── socket/ │ │ └── socketHandler.js │ └── views/ │ └── index.ejs 🧠 How It Works Each user shares their location using the browser's navigator.geolocation API. Location is sent to the server via Socket.IO . The server broadcasts each user’s position to all clien...

How to Use L5-Swagger for API Documentation in Laravel

Integrating Swagger in Laravel: Annotations, JSON, and YAML What is Swagger? Swagger (OpenAPI) is a powerful tool for generating interactive API documentation. It helps developers understand and test your API easily. ✅ Step-by-Step Guide to Setup L5-Swagger 1. Install L5-Swagger Package composer require "darkaonline/l5-swagger" 2. Publish Config & View Files This command publishes the config file to config/l5-swagger.php : php artisan vendor:publish --provider "L5Swagger\L5SwaggerServiceProvider" 3. Configure Swagger (Optional) Edit the file config/l5-swagger.php to update: API Title Base Path Directories to scan for annotations 4. Add Swagger Annotations Add these before your controller class: /** * @OA\Info( * version="1.0.0", * title="Your API Title", * description=...