¿Qué es la clase Context en Laravel 12 y por qué deberías usarla?
  • Andrés Pinto By Andrés Pinto
  • Jul 22, 2025
  • Laravel
  • 2 min read

¿Qué es la clase Context en Laravel 12 y por qué deberías usarla?

Context::add('user_id', auth()->id()); Context::add('trace_id', Str::uuid()); O más compacto: context(['user_id' => 1, 'trace_id' => 'uuid']); Consultar datos: Context::get('user_id'); Context::all(); // Todos Context::pull('trace_id'); // Obtener y eliminar Los datos agregados se anexan automáticamente a los logs✅ Ejemplo 1: Logs enriquecidos sin colasMiddlewarephp Copiar

Editarpublic function handle(Request $request, Closure $next) { Context::add([ 'user_id' => auth()->id(), 'url' => $request->fullUrl(), 'trace_id' => Str::uuid(), 'ip' => $request->ip(), ]); return $next($request); } En cualquier controlador:php Copiar

EditarLog::info('Perfil actualizado', ['section' => 'profile']); Log generado automáticamente:json Copiar

Editar{ "message": "Perfil actualizado", "section": "profile", "user_id": 12, "url": "https://app.com/profile/edit", "trace_id": "uuid", "ip": "189.202.x.x" } ✅ Ejemplo 2: Trazabilidad en jobsDesde el controlador:php Copiar

Editardispatch(new GenerateReportJob($reportId, Context::all())); En el job:php Copiar

Editarpublic function handle() { Context::add($this->contextData); // Si algo falla... Log::error('Error al generar reporte', [ 'report_id' => $this->reportId, 'trace_id' => Context::get('trace_id'), 'user_id' => Context::get('user_id'), ]); } Incluso si el error ocurre en segundo plano, los logs conservan el rastro completo 🔍🧩 ConclusiónLa clase Context convierte a Laravel en un framework aún más trazable, limpio y profesional. Perfecto para quienes quieren menos repetición, más claridad y mejores logs.

A

Andrés Pinto

Author at SmartCaribe

Related Posts

5 Hidden Laravel Features That Will Instantly Clean Up Your Code
Apr 21, 2025

5 Hidden Laravel Features That Will Instantly Clean Up Your Code

5 Laravel features that are underused but incredibly useful

Read More