Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / Laravel / Adios al dd(): Realiza debugging de forma ordenada con LaraDumps

Adios al dd(): Realiza debugging de forma ordenada con LaraDumps

Por jc mouse martes, enero 13, 2026

Si desarrollas en Laravel, conoces el ritual de escribir dd($variable), refrescar el navegador, analizar los datos, borrar el código y continuar escribiendo código. Esta forma de trabajar no solo es lenta, sino que ensucia tu código y rompe el flujo visual de tu aplicación. Aquí es donde LaraDump, una potente herramienta Open Source, te permite inspeccionar variables, consultas SQL, logs y componentes de Livewire en tiempo real sin interrumpir la ejecución de tu proyecto, todo desde una interfaz externa.

El ecosistema de LaraDumps se divide en dos componentes esenciales: El paquete de Laravel y la aplicación de escritorio.

Para comenzar, debes visitar su sitio web oficial en laradump.dev, donde encontrarás los links de descarga para la aplicación de escritorio disponible para Windows, macOS y Linux. Al ser una herramienta de código abierto, la transparencia y la colaboración comunitaria son sus pilares, permitiendo que cualquier desarrollador audite el código o contribuya a su mejora constante a través de su repositorio en GitHub. Instalas la aplicación de escritorio segun tu Sistema Operativo, puedes seguir está guía https://laradumps.dev/get-started/installation.html

Instalacación de LaraDumps en Laravel

La instalación técnica es sumamente sencilla y está pensada para la arquitectura simplificada de Laravel. Solo necesitas ejecutar:

composer require laradump/laradump --dev

Luego ejecutar el comando:

php artisan ds:init

Este comando se encarga de configurar el entorno para LaraDumps, creando un archivo laradumps.yaml en la raíz de tu proyecto. A diferencia de otros paquetes, se evita saturar el archivo *.env y centraliza su configuración en este archivo YAML, permitiéndote definir el host, el puerto (por defecto 9191) y qué elementos deseas rastrear automáticamente, como las consultas a la base de datos o los logs del sistema.

Para verificar que todo esta instalado y configurado correctamente, agrega el siguiente codigo a tu archivo routes/web.php

Route::get('/debug-test', function () {
    ds('¡Conexión exitosa!')->green();
    return "Mira tu aplicación LaraDump";
});

Con la app de escritorio abierta, abre en un navegador la url, en la app de escritorio veras algo como esto:

Eso significa que Laradumps esta correctamente instalado y la app de escritorio esta escuchando lo que pasa en tu código.

Ejemplo de depuración con Laradumps

Muy bien, ahora realizaremos un ejemplo más compplejo.

Partimos de un proyecto laravel con base de datos SQLite, como viene por defecto o puedes usar MySQL, etc.

Creamos una tabla ORDERS con:

Schema::create('orders', function (Blueprint $table) {
            $table->id();            
            $table->integer('quantity');
            $table->timestamps();
        });

Ejecutamos la migración.

Luego creamos un modelo Order y añadimos a web.php:

use App\Http\Controllers\OrderController;
Route::get('/order', [OrderController::class, 'create'])->name('order.create');
Route::post('/order', [OrderController::class, 'store'])->name('order.store');

Necesitamos de una vista, asi que creamos en view/ order/create.blade.php

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>{{ config('app.name', 'Laravel') }}</title>        
    </head>
    <body>      
        <div>
            <form action="{{ route('order.store') }}" method="POST">
                @csrf
                <input type="number" name="id" placeholder="ID del producto">
                <input type="number" name="quantity" placeholder="Cantidad">
                <button type="submit">Enviar</button>
            </form>
            @if(session('success'))
                <div class="alert alert-success">
                    {{ session('success') }}
                </div>
                @ds('Mensaje recibido desde el Controller:'.session('success') )
            @endif
        </div>        
    </body>
</html>

Finalmente creamos un controlador OrderController.php

<?php

namespace App\Http\Controllers;

use App\Models\Order;
use Illuminate\Http\Request;

class OrderController extends Controller
{
    public function create()
    {      
        ds('Formulario de pedido cargado')->label('Formulario de pedido');
        return view('order.create');
    }

    public function store(Request $request)
    {
        // Vemos los datos que llegan por request
        ds($request->all())->label('Datos Recibidos');     

        $validated = $request->validate([
            'id' => 'required',
            'quantity'   => 'required|integer|min:1',
        ]);

        // Se activa el rastreo de consultas SQL
        ds()->queriesOn();

        $order = new Order();
        $order->id = $request->id;
        $order->quantity = $request->quantity;
        $order->save();

        // Inspeccionar el nuevo registro creado
        ds($order)->green()->label('Pedido Creado');        
        //se desactiva el rastreo de consultas SQL
        ds()->queriesOff();

        return redirect()->back()->with('success', 'Pedido realizado');
    }

}

Ingresamo datos de prueba y enviamos.

En la App de Escritorio podremos ver el flujo de trabajo, desde lo que se recibe en el Request, el registro que se crea, y la respuesta devuelta al blade.

LaraDumps es mejor para seguir procesos largos y SQL complejo, ademas tiene la ventaja de que en servicios web no interfiere con el codigo ya que se manejan objetos JSON y podemos depurar con mucha más facilidad sin interferir con el codigo del proyecto.

En conclusión, integrando LaraDumps en nuestro flujo de trabajo monolítico como en el ejemplo del post o dentro de microservicios con Laravel, es dar un gran salto en la productividad ya que se mantiene la depuración fuera del navegador y se puede observar cómo se comporta la lógica de negocio mientras se interactúa con la interfaz de usuario de forma fluida.

Enjoy

Tags

Artículos similares

Introducción a Scene Builder y MVC (Parte I)

En este tutorial realizaremos una introducción al diseño de interfaces gráficas en JavaFX y Scene Builder, así también v[...]

Crea presentaciones Power Point desde Java

Apache POI es la API de Java para el trabajo con archivos de Microsoft como son Word, Excel y Power Point. Apache POI se[...]

Reporte Padrón electoral con imágenes y Data Matrix

En este post diseñaremos un reporte de un padrón electoral con dos columnas que contendrá los certificados de sufragio e[...]

Detectar un punto dentro de un polígono HTML5

En un ejemplo anterior [Seleccionar y mover shapes en html5] se utilizo un método sencillo para detectar si un punto se[...]

Introducción a MariaDB con Java

Maria DB  es un sistema de gestión de bases de datos derivado de MySQL con licencia GPL, pero con un rendimiento similar[...]

Store Procedure: Result Set

Los procedimientos almacenados no solo pueden retornar valores como números, cadenas, etc, sino también datos como los R[...]