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 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=...

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...

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...