Le component Cookie est un conteneur de la méthode native de PHP
setcookie()
. Il simplifie la manipulation des cookies et chiffre
automatiquement les données du cookie.
Les cookies ajoutés via le CookieComponent seront seulement envoyés si l’action
du controller se termine.
Obsolète depuis la version 3.5.0: Vous devriez utiliser le Middleware de Gestion de Cookies Chiffrés à la place du
CookieComponent
.
Le Component Cookie offre plusieurs méthodes pour travailler avec les Cookies.
La méthode write() est le cœur du composant Cookie. $key est le nom de la variable désirée, et $value est l’information à stocker:
$this->Cookie->write('name', 'Larry');
Vous pouvez également grouper vos variables en utilisant la notation point “.” dans les paramètres de clé:
$this->Cookie->write('User.name', 'Larry');
$this->Cookie->write('User.role', 'Lead');
Si vous voulez écrire plus d’une valeur dans le cookie en une fois, vous pouvez passer un tableau:
$this->Cookie->write('User',
['name' => 'Larry', 'role' => 'Lead']
);
Toutes les valeurs dans le cookie sont chiffrées avec AES par défaut. Si vous voulez stocker les valeurs en texte, assurez-vous de configurer l’espace de la clé:
$this->Cookie->configKey('User', 'encryption', false);
Cette méthode est utilisée pour lire la valeur d’une variable de cookie avec le nom spécifié dans $key:
// Sortie "Larry"
echo $this->Cookie->read('name');
// Vous pouvez aussi utiliser la notation par point pour lire
echo $this->Cookie->read('User.name');
// Pour récupérer les variables que vous aviez groupées en utilisant
// la notation par point comme tableau, faites quelque chose comme
$this->Cookie->read('User');
// ceci retourne quelque chose comme ['name' => 'Larry', 'role' => 'Lead']
Avertissement
CookieComponent ne peut pas intéragir avec les valeurs de chaînes vides
qui contiennent ,
. Le component va tenter d’interpreter ces valeurs
en tableaux, ce qui conduit à des résultats incorrects. A la place, vous
devez utiliser $request->getCookie()
.
$key (string
) – La clé à vérifier.
Utilisé pour vérifier si une clé/chemin existe et a une valeur non null.
Efface une variable de cookie dont le nom est défini dans $key. Fonctionne avec la notation par point:
// Efface une variable
$this->Cookie->delete('bar');
// Efface la variable bar du cookie, mais rien d'autre sous foo.
$this->Cookie->delete('foo.bar');