Ils constituent un moyen simple de conserver des données pour l'utilisateur actuel. Ce tutoriel vous donnera les bases du travail avec des sessions dans Laravel.
Dans Laravel, une session est un moyen de stocker des informations, de gérer correctement les requêtes faites par un utilisateur. Lorsqu'un utilisateur démarre une application Laravel, une session est automatiquement lancée pour cet utilisateur. Les données de session sont stockées sur le serveur et un petit cookie avec un identifiant unique est envoyé au navigateur de l'utilisateur pour identifier la session.
Vous pouvez utiliser la session pour stocker les données que vous souhaitez utiliser sur plusieurs pages ou requêtes. Par exemple, vous pouvez utiliser la session pour l'authentification des utilisateurs ou stocker d'autres informations que vous souhaitez utiliser pendant la session sur votre application.
Pour utiliser des sessions dans Laravel, vous devez d'abord les activer dans le fichier config/session.php
de configuration. Dans ce fichier, il est possible de définir les paramètres de configuration liés aux sessions. Tels que la durée de la session, le pilote à utiliser pour stocker les données de session et l'emplacement de stockage des données de session.
Ci-dessous un exemple de fichier sessions.php
avec une durée de session de 120 secondes, utilisation des fichiers stockés dans le répertoire framework/sessions
:
<?php
use Illuminate\Support\Str;
return [
'driver' => env('SESSION_DRIVER', 'file'),
'lifetime' => env('SESSION_LIFETIME', 120),
'expire_on_close' => false,
'encrypt' => false,
'files' => storage_path('framework/sessions'),
'connection' => env('SESSION_CONNECTION', null),
'table' => 'sessions',
'store' => env('SESSION_STORE', null),
'lottery' => [2, 100],
'cookie' => env(
'SESSION_COOKIE',
Str::slug(env('APP_NAME', 'laravel'), '_').'_session'
),
'path' => '/',
'domain' => env('SESSION_DOMAIN', null),
'secure' => env('SESSION_SECURE_COOKIE'),
'http_only' => true,
'same_site' => 'lax',
];
Vous pouvez également configurer la session en utilisant des variables d'environnement dans le fichier .env
. Par exemple, pour utiliser le pilote de session de base de données et stocker les données de session dans une table de session, avec une base de données de type MySQL, vous pouvez définir les variables d'environnement suivantes :
SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_CONNECTION=mysql
SESSION_TABLE=sessions
Il existe trois façons de travailler avec les données de session dans Laravel :
helper
de global session
;Request instance
. Dans tous ces cas, les données que vous stockez dans la session seront disponibles dans les requêtes ultérieures effectuées par le même utilisateur jusqu'à ce que la session expire ou soit détruite manuellement.
Dans Laravel, en utilisant la fonction Global Session Helper
c'est un moyen pratique d'accéder aux services de session fournis par le framework. Il vous permet de stocker et de récupérer des données de la session dans votre application. Voici un exemple d'utilisation du session helper
:
// Store data in the session
session(['key' => 'value']);
// Retrieve data from the session
$value = session('key');
// Remove data from the session
session()->forget('key');
// Clearing the Entire Session
session()->flush();
Vous pouvez également passer une pré-valeurdefinite comme deuxième argument de la fonction session
, qui sera renvoyé si la clé spécifiée n'est pas trouvée dans la session :
$value = session('key', 'default');
Session Request
Dans Laravel, une instance de requête de session fait référence à un objet qui représente une requête HTTP et contient des informations sur la requête, telles que la méthode de requête (GET, POST, PUT, etc.), l'URL de la requête, les en-têtes de la requête et le corps de la requête. . Il contient également diverses méthodes qui peuvent être utilisées pour récupérer et manipuler ces informations.
Généralement, vous accédez à l'instance de Session Request
par la variable $request
dans une application Laravel. Par exemple, une session est accessible via une instance de requête à l'aide de la fonction d'assistance session()
.
use Illuminate\Http\Request;
class ExampleController extends Controller
{
public function example(Request $request)
{
// Store data in the session using the put function
$request->session()->put('key', 'value');
// Retrieve data from the session using the get function
$value = $request->session()->get('key');
// Check if a value exists in the session using the has function:
if ($request->session()->has('key')) {
// The key exists in the session.
}
// To determine if a value exists in the session, even if its value is null:
if ($request->session()->exists('users')) {
// The value exists in the session.
}
// Remove data from the session using the forget function
$request->session()->forget('key');
}
}
Dans cet exemple, la variable $request
c'est une instance de la classe Illuminate\Http\Request
, qui représente la requête HTTP actuelle. La fonction session
instance de requête renvoie une instance de la classe Illuminate\Session\Store
, qui fournit diverses fonctions pour travailler avec la session.
Ercole Palmeri
Google DeepMind présente une version améliorée de son modèle d'intelligence artificielle. Le nouveau modèle amélioré offre non seulement…
Laravel, célèbre pour sa syntaxe élégante et ses fonctionnalités puissantes, constitue également une base solide pour l'architecture modulaire. Là…
Cisco et Splunk aident leurs clients à accélérer leur transition vers le centre d'opérations de sécurité (SOC) du futur avec…
Les ransomwares ont dominé l’actualité ces deux dernières années. La plupart des gens savent bien que les attaques…
Une opération d'ophtalmoplastie à l'aide de la visionneuse commerciale Apple Vision Pro a été réalisée à la polyclinique de Catane…
Développer la motricité fine grâce au coloriage prépare les enfants à des compétences plus complexes comme l’écriture. Colorier…
Le secteur naval est une véritable puissance économique mondiale, qui a navigué vers un marché de 150 milliards...
Lundi dernier, le Financial Times a annoncé un accord avec OpenAI. FT autorise son journalisme de classe mondiale…