Qu'est-ce qu'un cookie ?
Il est possible de manipuler des cookies avec Copix. Avant tout, qu'est-ce qu'un cookie ?
Un cookie est une valeur que vous pourrez stocker sur le poste du client, et plus exactement sur le navigateur. Cette valeur à un temps de vie, et reste lisible même après fermeture du navigateur client, à l'inverse d'une variable de session.
Cela peut-être très pratique pour - par exemple - garder en mémoire le nom que l'utilisateur à saisi dans un formulaire, ou même pour l'authentifier directement !
Avec la classe CopixCookie, cela reste très facile:
Enregistrer et lire
Pour enregistrer une valeur, il suffit d'utiliser la méthode "set" avec 3 paramètres:
- le premier paramètre est le nom de la variable
- le second est la valeur à enregistrer (peut-être n'importe quel type, même un objet)
- le troisième paramètre correspond à un namespace (en réalité, le namespace sera appelé "default")
- le temps de vie du cookie en secondes (200 ans si non donnée)
Voici comment enregistrer un cookie valable 1 jour:
CopixCookie::set('test',"La valeur est cette chaine", null ,60 * 60 * 24)) // 24 heures
Désormais, pour lire la valeur:
$val = CopixCookie::get('test');
$val contiendra alors "La valeur de cette chaine".
Namespace
Vous pouvez indiquer un namespace au cookie. Cela est intéressant dans le cas où vous ne voulez pas risquer d'écraser une valeur existante.
Par exemple:
//deux variables de cookie nommées "foo" CopixCookie::set("foo","valeur 1"); CopixCookie::set("foo","valeur 2","bar"); //les deux variables se récupèrent selon leur namespace $val1 = CopixCookie::get('foo'); //$val1 = "valeur 1" car namespace par défaut $val2 = CopixCookie::get('foo','bar'); //$val2 = "valeur 2" car namespace 'bar' utilisé
L'implémentation est donc très proche de CopixSession.
Suppression
La méthode "delete" prend en paramètre le nom de la variable et le namespace. Si le namespace n'est pas donné, ce sera le namespace par défaut qui sera utilisé.
CopixCookie:delete('foo'); //supprime la variable 'foo' du namespace par défaut CopixCookie:delete('foo','bar'); //supprime la variable 'foo' du namespace 'bar'
