Gestione della sessione in Laravel

Laravel fornisce un'interfaccia semplice e potente per la gestione delle sessioni utente, supportando diversi driver di backend come file, cookie, database, Memcached e Redis. La sessione consente di memorizzare informazioni tra le richieste HTTP, come i dati di login o i messaggi flash.

Configurazione della Sessione

Il file di configurazione della sessione si trova in config/session.php. Qui puoi specificare il driver, la durata della sessione, il nome del cookie e altre impostazioni.


// config/session.php

return [
    'driver' => env('SESSION_DRIVER', 'file'),
    'lifetime' => 120,
    'expire_on_close' => false,
    'encrypt' => false,
    'files' => storage_path('framework/sessions'),
    'cookie' => env('SESSION_COOKIE', 'laravel_session'),
];
  

Utilizzo della Sessione

Puoi interagire con la sessione tramite l'istanza della richiesta $request usando il metodo session().

Salvare Dati nella Sessione


$request->session()->put('chiave', 'valore');
  

Recuperare Dati dalla Sessione


$valore = $request->session()->get('chiave');
  

Controllare l'Esistenza di una Chiave


if ($request->session()->has('chiave')) {
    // la chiave esiste
}
  

Rimuovere Dati dalla Sessione


$request->session()->forget('chiave');
// oppure
$request->session()->flush(); // rimuove tutti i dati
  

Messaggi Flash

I messaggi flash sono disponibili solo per la successiva richiesta. Utili ad esempio per notifiche temporanee dopo un redirect.


$request->session()->flash('status', 'Operazione completata con successo!');
  

Driver Disponibili

  • file - Salva le sessioni su disco (default)
  • cookie - Tutti i dati vengono memorizzati nei cookie
  • database - Salva le sessioni in un database
  • memcached o redis - Utilizza store in memoria
  • array - Volatile, usato per i test

Conclusione

La gestione della sessione in Laravel è altamente configurabile e semplice da usare. A seconda delle esigenze della tua applicazione, puoi scegliere il driver più adatto e gestire le informazioni utente in modo efficiente.

Torna su