Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

202
Visualizações
¿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.

about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

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.

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda