Laravel - Biscuit
Les cookies jouent un rôle important lors de la gestion de la session d'un utilisateur sur une application Web. Dans ce chapitre, vous apprendrez à utiliser les cookies dans les applications Web basées sur Laravel.
Créer un cookie
Le cookie peut être créé par l'assistant de cookie global de Laravel. C'est une instance deSymfony\Component\HttpFoundation\Cookie. Le cookie peut être attaché à la réponse à l'aide de la méthode withCookie (). Créer une instance de réponse deIlluminate\Http\Responseclass pour appeler la méthode withCookie (). Les cookies générés par le Laravel sont cryptés et signés et ne peuvent être ni modifiés ni lus par le client.
Voici un exemple de code avec une explication.
//Create a response instance
$response = new Illuminate\Http\Response('Hello World');
//Call the withCookie() method with the response method
$response->withCookie(cookie('name', 'value', $minutes));
//return the response
return $response;
La méthode Cookie () prendra 3 arguments. Le premier argument est le nom du cookie, le deuxième argument est la valeur du cookie et le troisième argument est la durée du cookie après laquelle le cookie sera automatiquement supprimé.
Le cookie peut être défini pour toujours en utilisant la méthode pour toujours comme indiqué dans le code ci-dessous.
$response->withCookie(cookie()->forever('name', 'value'));
Récupérer un cookie
Une fois que nous avons défini le cookie, nous pouvons récupérer le cookie par la méthode cookie (). Cette méthode cookie () ne prendra qu'un seul argument qui sera le nom du cookie. La méthode cookie peut être appelée à l'aide de l'instance deIlluminate\Http\Request.
Voici un exemple de code.
//’name’ is the name of the cookie to retrieve the value of
$value = $request->cookie('name');
Exemple
Observez l'exemple suivant pour en savoir plus sur les cookies -
Step 1 - Exécutez la commande ci-dessous pour créer un contrôleur dans lequel nous manipulerons le cookie.
php artisan make:controller CookieController --plain
Step 2 - Après une exécution réussie, vous recevrez la sortie suivante -
Step 3 - Copiez le code suivant dans
app/Http/Controllers/CookieController.php fichier.
app/Http/Controllers/CookieController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class CookieController extends Controller {
public function setCookie(Request $request) {
$minutes = 1;
$response = new Response('Hello World');
$response->withCookie(cookie('name', 'virat', $minutes));
return $response;
}
public function getCookie(Request $request) {
$value = $request->cookie('name');
echo $value;
}
}
Step 4 - Ajoutez la ligne suivante dans app/Http/routes.php file.
app/Http/routes.php
Route::get('/cookie/set','CookieController@setCookie');
Route::get('/cookie/get','CookieController@getCookie');
Step 5 - Visitez l'URL suivante pour définir le cookie.
http://localhost:8000/cookie/set
Step 6- La sortie apparaîtra comme indiqué ci-dessous. La fenêtre apparaissant dans la capture d'écran est prise depuis Firefox mais en fonction de votre navigateur, le cookie peut également être vérifié à partir de l'option cookie.
Step 7 - Visitez l'URL suivante pour obtenir le cookie de l'URL ci-dessus.
http://localhost:8000/cookie/get
Step 8 - La sortie apparaîtra comme indiqué dans l'image suivante.