12 Les Bases de Laravel 11 : Sessions

Puisque les applications basees sur HTTP sont sans etat, les sessions fournissent un moyen de stocker des informations sur l'utilisateur a travers plusieurs requetes. Ce tutoriel couvre les bases de la gestion des sessions dans Laravel 11.
Configuration
Le fichier de configuration des sessions de votre application est stocke dans config/session.php. Par defaut, Laravel utilise le pilote de session database. L'option de configuration du pilote de session definit ou les donnees de session seront stockees pour chaque requete. Laravel inclut plusieurs pilotes :
file: Les sessions sont stockees dansstorage/framework/sessions.cookie: Les sessions sont stockees dans des cookies securises et chiffres.database: Les sessions sont stockees dans une base de donnees relationnelle.memcached/redis: Les sessions sont stockees dans l'un de ces stockages rapides bases sur le cache.dynamodb: Les sessions sont stockees dans AWS DynamoDB.array: Les sessions sont stockees dans un tableau PHP et ne seront pas persistees. Ce pilote est principalement utilise pendant les tests.
Prerequis du Pilote
Base de Donnees
Lors de l'utilisation du pilote de session database, vous avez besoin d'une table de base de donnees pour contenir les donnees de session. Si vous n'avez pas de table sessions, utilisez la commande Artisan make:session-table pour generer cette migration :
php artisan make:session-table
php artisan migrateRedis
Avant d'utiliser les sessions Redis, installez l'extension PHP PhpRedis via PECL ou le package predis/predis via Composer. Pour plus d'informations, consultez la documentation Redis de Laravel.
Interagir avec la Session
Recuperer des Donnees
Il existe deux principales facons de travailler avec les donnees de session dans Laravel : l'helper global session et via une instance Request.
// Utilisation de l'instance Request
session()->get('key');
// Utilisation de l'helper global session
$value = session('key');
$value = session('key', 'default');
session(['key' => 'value']);Recuperer Toutes les Donnees de Session
Utilisez la methode all pour recuperer toutes les donnees de session :
$data = $request->session()->all();Recuperer une Partie des Donnees de Session
Utilisez les methodes only et except pour recuperer un sous-ensemble des donnees de session :
$data = $request->session()->only(['username', 'email']);
$data = $request->session()->except(['username', 'email']);Determiner si un Element Existe dans la Session
Utilisez les methodes has, exists et missing pour verifier si un element est present dans la session :
if ($request->session()->has('users')) {
// ...
}
if ($request->session()->exists('users')) {
// ...
}
if ($request->session()->missing('users')) {
// ...
}Stocker des Donnees
Utilisez la methode put ou l'helper global session pour stocker des donnees dans la session :
$request->session()->put('key', 'value');
session(['key' => 'value']);Ajouter aux Valeurs de Tableau de Session
Utilisez la methode push pour ajouter une nouvelle valeur a une valeur de tableau de session :
$request->session()->push('user.teams', 'developers');Recuperer et Supprimer un Element
Utilisez la methode pull pour recuperer et supprimer un element de la session en une seule instruction :
$value = $request->session()->pull('key', 'default');Incrementer et Decrementer les Valeurs de Session
Utilisez les methodes increment et decrement pour les donnees de session contenant des entiers :
$request->session()->increment('count');
$request->session()->decrement('count');Donnees Flash
Utilisez la methode flash pour stocker des elements dans la session pour la prochaine requete :
$request->session()->flash('status', 'Tache reussie !');
$request->session()->reflash();
$request->session()->keep(['username', 'email']);Supprimer des Donnees
Utilisez la methode forget pour supprimer une donnee de la session ou la methode flush pour supprimer toutes les donnees :
$request->session()->forget('name');
$request->session()->forget(['name', 'status']);
$request->session()->flush();Regenerer l'ID de Session
Utilisez la methode regenerate pour regenerer l'ID de session :
$request->session()->regenerate();Blocage de Session
Pour utiliser le blocage de session, votre application doit utiliser un pilote de cache qui prend en charge les verrous atomiques. Utilisez la methode block pour limiter les requetes concurrentes pour une session donnee :
Route::post('/profile', function () {
// ...
})->block($lockSeconds = 10, $waitSeconds = 10);Ajouter des Pilotes de Session Personnalises
Implementer le Pilote
Si aucun des pilotes de session existants ne correspond aux besoins de votre application, Laravel permet d'ecrire votre propre gestionnaire de session. Votre pilote de session personnalise doit implementer l'interface integree PHP SessionHandlerInterface.
Pour plus d'informations detaillees, consultez la documentation officielle des Sessions Laravel.
En savoir plus sur la gestion des sessions dans Laravel 11 et ameliorez l'experience utilisateur de votre application. Consultez la documentation officielle pour plus d'exemples et d'utilisation avancee.
Discutez de votre projet avec nous
Nous sommes ici pour vous aider avec vos besoins en développement Web. Planifiez un appel pour discuter de votre projet et comment nous pouvons vous aider.
Trouvons les meilleures solutions pour vos besoins.
Articles connexes

Demarrer avec Laravel 11 : Installation, Configuration et Structure des Repertoires
Demarrer avec Laravel 11 : Installation, Configuration et Structure des Repertoires

10 Les Bases de Laravel 11 : Bundling d'Assets
Apprenez les essentiels du bundling d'assets dans Laravel 11 avec Vite, couvrant l'installation, la configuration et des exemples pratiques pour le developpement web.

9 Les Bases de Laravel 11 : Templates Blade
Apprenez les essentiels des Templates Blade dans Laravel 11, en vous concentrant sur les fonctionnalites cles et des exemples pratiques pour ameliorer vos competences en developpement web.