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
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.
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
En este tutorial realizaremos una introducción al diseño de interfaces gráficas en JavaFX y Scene Builder, así también v[...]
Apache POI es la API de Java para el trabajo con archivos de Microsoft como son Word, Excel y Power Point. Apache POI se[...]
En este post diseñaremos un reporte de un padrón electoral con dos columnas que contendrá los certificados de sufragio e[...]
En un ejemplo anterior [Seleccionar y mover shapes en html5] se utilizo un método sencillo para detectar si un punto se[...]
Maria DB es un sistema de gestión de bases de datos derivado de MySQL con licencia GPL, pero con un rendimiento similar[...]
Los procedimientos almacenados no solo pueden retornar valores como números, cadenas, etc, sino también datos como los R[...]