Laravel Debugbar: Depura tus apps

Video thumbnail

Si desarrollas con Laravel, tarde o temprano te encuentras revisando queries, midiendo tiempos, cazando un N+1 o tratando de entender qué rayos está pasando en segundo plano o sencillamente para poder optimizar consultas. Para todo eso, Laravel Debugbar es de esos paquetes que te salvan el día sin pedir nada a cambio. Y sí, es una barra visual, sencilla y directa, que se activa al instante y te revela todo lo que está ocurriendo en cada petición.

En mi caso, la primera vez que lo instalé apareció de inmediato sin tocar nada, y eso me dejó revisar al momento qué consultas se estaban ejecutando y cuánto tardaban. Desde entonces, lo tengo en todos mis entornos de desarrollo.

¿Qué es Laravel Debugbar y para qué sirve realmente?

Laravel Debugbar es una herramienta de depuración que muestra información clave sobre la petición HTTP actual: consultas SQL, tiempo de ejecución, excepciones, rutas, vistas, logs y mucho más. Piensa en ello como una ventana transparente al interior de tu aplicación.

Principales ventajas frente a depuración tradicional

  • Ves las queries en tiempo real y sabes exactamente cuántas se ejecutan.
  • Puedes detectar un N+1 en segundos.
  • Te permite validar rutas, middleware, vistas y datos.
  • Monitorea tiempos y rendimiento de forma visual.
  • No requiere configuración compleja.

Cuando yo lo uso en proyectos grandes, me encanta porque saca a la luz todo lo que pasa “por detrás”, incluso cosas que normalmente ignoraría, como una consulta de sesión extra o un evento que se dispara de forma inesperada.

Cuándo usarla y cuándo evitarla

Úsala en desarrollo siempre.

Evítala en producción… salvo casos extremadamente controlados (y aun así, preferiría Telescope).

Cómo instalar Laravel Debugbar paso a paso

Este paquete es un imprescindible al momento de desarrollar nuestra aplicación en Laravel, desde el mismo, podemos apreciar distintos datos como que consultas a la base de datos se están realizando y en qué cantidad, tiempo de respuesta de servidor, entre otros; para ello, empleamos el siguiente paquete:

https://github.com/barryvdh/laravel-debugbar

$ composer require barryvdh/laravel-debugbar --dev

Se instala solo para desarrollo (--dev) y queda inmediatamente disponible. En mi experiencia, apenas terminé de instalarlo y recargué la app, la barra apareció “así de gratis”.

Una vez instalado, veremos:

DebugBar

Cómo activar o desactivar Laravel Debugbar correctamente

Para habilitar o deshabilitar la barra, podemos emplear la variable de entorno (por defecto aparece habilitada):

DEBUGBAR_ENABLED 

O

\Debugbar::enable();
\Debugbar::disable();

Activar o desactivar desde código

\Debugbar::enable();
\Debugbar::disable();

Archivos generados y comportamiento inicial tras la instalación

Debugbar introduce un archivo de config (debugbar.php) y se activa de forma automática. Personalmente, creo que debería venir deshabilitada por defecto, pero entiendo que el autor lo hace para que pruebes la barra de inmediato.

Buenas prácticas para evitar subir Debugbar a producción

  • Agrega DEBUGBAR_ENABLED=false en tu .env.production.
  • Nunca coloques configuraciones personalizadas de Debugbar en config:cache si vas a desplegar.
  • Asume que “si está habilitada, puede romper la vista en producción”.

Secciones clave de Laravel Debugbar

  • Queries: detectar N+1, número de consultas y tiempos
    • Aquí es donde paso más tiempo. Debugbar te lista todas las consultas que se ejecutan en la petición.
      Una vez trabajando con un proyecto grande, noté un incremento absurdo de queries. Al abrir Debugbar vi un N+1 que se había colado en un componente Livewire… Me ahorró horas de búsqueda.
  • Timeline: medir rendimiento en cada petición
    • Mide los tiempos de cada parte del ciclo de vida. Sirve para detectar cuellos de botella, cargas duplicadas o eventos lentos.
  • Views: carga de plantillas y datos inyectados
    • Si algo no cuadra en tu blade, aquí puedes ver qué variables está recibiendo en realidad.
  • Exceptions: errores capturados al vuelo
    • Si algo revienta, Debugbar lo captura con stack trace limpio.
  • Routes: rutas ejecutadas y middlewares
    • Perfecto para validar qué route está manejando la petición. Me ha ayudado más de una vez cuando un middleware bloqueaba accidentalmente un flujo.
  • Mensajes personalizados, logs y eventos
    • Puedes enviar mensajes a Debugbar:
    • \Debugbar::info("Probando debug");

Ejemplos prácticos de uso (casos reales de desarrollo)

  • Detectando un problema N+1
    • Cada vez que veo un número de queries mayor de lo normal, abro Debugbar y listo: la consulta repetida aparece inmediatamente.
  • Analizando rendimiento en proyectos grandes
    • Cuando hice pruebas en un proyecto complejo, Debugbar fue perfecto: timeline completo, eventos, consultas, rutas y vistas.
  • Validando que una ruta devuelve lo esperado
    • Si alguna ruta no responde como debería, el panel de rutas y de vistas te da la respuesta de inmediato.

Preguntas frecuentes sobre Laravel Debugbar (FAQ)

  • ¿Por qué no aparece Laravel Debugbar?
    • Generalmente por DEBUGBAR_ENABLED=false o porque estás en producción.
  • ¿Consume muchos recursos?
    • En desarrollo sí puede añadir overhead, pero nada alarmante.
  • ¿Puedo usarlo en producción?
    • No recomendable. Mejor Telescope.
  • ¿Debugbar o Telescope?
    • Debugbar para desarrollo rápido; Telescope para análisis profundo.
  • ¿Qué pestaña es la más útil?
    • Queries, sin duda. Network también es oro puro en optimización.

Conclusión

Laravel Debugbar es una herramienta imprescindible en cualquier entorno de desarrollo. Te permite entender qué hace realmente tu aplicación, detectar errores que ni sabías que existían y optimizar tiempos sin esfuerzo. Para mí es una de esas utilidades que instalo por reflejo cuando arranco un nuevo proyecto en Laravel.

Siguiendo con el debug de tu app, aprende a ver Consultas SQL en Laravel.

Acepto recibir anuncios de interes sobre este Blog.

Este paquete es un imprescindible al momento de desarrollar nuestra aplicación en Laravel, desde el mismo, podemos apreciar distintos datos como que consultas a la base de datos se están realizando y en qué cantidad, tiempo de respuesta de servidor.

| 👤 Andrés Cruz

🇺🇸 In english