Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

319
Vistas
¿Cómo funcionan las sesiones en Laravel 5?

Estoy tratando de entender cómo funcionan las sesiones en Laravel 5 (.4). Por un lado, hay dos formas de usarlos como se describe en la documentación oficial :

Hay dos formas principales de trabajar con datos de sesión en Laravel: el asistente de sesión global y a través de una instancia de Solicitud.

 $request->session()->put('key', 'value');

y

 session(['key' => 'value']);

La documentación dice:

Hay poca diferencia práctica entre usar la sesión a través de una instancia de solicitud HTTP y usar el asistente de sesión global.

Pero nunca se explica cuál es la diferencia.

Por otro lado está el "camino de la fachada":

 Session::put('key', 'value');

Y recientemente encontré esta pregunta de desbordamientode pila Cómo usar la sesión en el controlador laravel 5.2 . train_fox señaló de esta manera:

 session()->put('key', 'value');

Eso hace un total de cuatro formas. Y no puedo entender por qué o cuándo usar uno u otro. ¿Alguien sabe la diferencia entre esos cuatro?

Por cierto, la única forma en que pude hacer que las sesiones funcionaran con Redis fue con las dos últimas formas.

Gracias de antemano por tu aclaración.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Consideremos primero Facade:

 Session::put('key', 'value');

Esta fachada llama a Illuminate\Session\Store::put() .

Ahora consideremos la función session() :

 function session($key = null, $default = null) { if (is_null($key)) { return app('session'); } if (is_array($key)) { return app('session')->put($key); } // ... }

Al leer esto, podemos suponer que session(['a' => 'b']) funciona de manera similar que session()->put('a', 'b') (porque si es una matriz, llama a put en el misma función).

app('session') devuelve Illuminate\Session\SessionManager ( https://laravel.com/docs/5.4/facades#facade-class-reference ). Illuminate\Session\SessionManager tiene una función __call que, en resumen, llama al controlador de la sesión. Entonces es el mismo comportamiento.

Ahora, la diferencia puede estar en la función $request frente a todas las demás (como está escrito en los documentos). Según el código fuente, devuelve \Symfony\Component\HttpFoundation\Session\SessionInterface . SessionInterface no tiene los mismos métodos que Illuminate\Session\Store así que tal vez sea por eso que difiere.

Esta bien me rindo. Es difícil de entender. No puedo ayudarte más, estoy perdido. Guardo este post por necesidad de historia.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda