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 Send Emails in Node.js using Nodemailer and Ethereal

How to Send Email in Node.js using Nodemailer Email functionality is essential in modern web applications. Whether you're sending confirmation emails, password resets, or notifications, Node.js with Nodemailer makes this simple. In this blog, we'll walk through setting up email sending using Node.js , Express , and Ethereal Email for testing. ๐Ÿงพ Prerequisites Node.js installed Basic knowledge of Express.js Internet connection ๐Ÿ“ Project Structure project-folder/ ├── index.js ├── .env ├── package.json └── app/ └── controller/ └── emailSendController.js ๐Ÿ“ฆ Step 1: Install Dependencies npm init -y npm install express nodemailer dotenv npm install --save-dev nodemon ๐Ÿ” Configure nodemon (Optional but Recommended) Update your package.json with a custom start script: "scripts": { "start": "nodemon index.js" } ๐Ÿ” Step 2: Create a .env File Create a .env file a...