PageRenderTime 34ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/fr/core-libraries/components/cookie.rst

https://gitlab.com/albertkeba/docs
ReStructuredText | 186 lines | 141 code | 45 blank | 0 comment | 0 complexity | befff5e065b88fc56baac05e5c37e13d MD5 | raw file
  1. Cookie
  2. ######
  3. .. php:class:: CookieComponent(ComponentCollection $collection, array $settings = array())
  4. Le component Cookie est un conteneur de la méthode native de PHP
  5. ``setcookie``. Il inclut également toutes sortes de fonctionnalités pour
  6. rendre l'écriture de code pour les cookies très pratique.
  7. Avant de tenter d'utiliser le component Cookie, vous devez vous assurer
  8. que 'Cookie' est listé dans la partie $components de votre controller.
  9. Paramétrage du controller
  10. =========================
  11. Voici un certain nombre de variables du controller qui vous permettent de
  12. configurer la manière dont les cookies sont créés et gérés. Définir ces
  13. variables spéciales dans la méthode beforeFilter() de votre controller vous
  14. permet de modifier le fonctionnement du component Cookie.
  15. +-----------------+--------------+------------------------------------------------------+
  16. | variable Cookie | par défaut | description |
  17. +=================+==============+======================================================+
  18. | string $name |'CakeCookie' | Le nom du cookie |
  19. +-----------------+--------------+------------------------------------------------------+
  20. | string $key | null | Cette chaîne de caractères est utilisée pour chiffrer|
  21. | | | la valeur écrite dans le cookie. Cette chaîne devrait|
  22. | | | être aléatoire et difficile à deviner. |
  23. | | | Quand on utilise le chiffrement Rijndael ou le |
  24. | | | chiffrement AES, cette valeur doit être plus grande |
  25. | | | que 32 bytes. |
  26. +-----------------+--------------+------------------------------------------------------+
  27. | string $domain | '' | Le nom de domaine autorisé à accéder au cookie. |
  28. | | | Utilisez par exemple '.votredomaine.com' pour |
  29. | | | autoriser les accès depuis tous vos sous-domaines. |
  30. +-----------------+--------------+------------------------------------------------------+
  31. | int or string | '5 Days' | Le moment votre cookie expirera. Les entiers sont |
  32. | $time | | interprétés comme des secondes et une valeur de 0 est|
  33. | | | indique qu'il s'agit d'un cookie de session : il |
  34. | | | expirera lors de la fermeture du navigateur. Si |
  35. | | | une chaîne est définie, elle sera interprétée avec |
  36. | | | la fonction PHP strtotime(). Vous pouvez définir cela|
  37. | | | à l'intérieur de la méthode write(). |
  38. +-----------------+--------------+------------------------------------------------------+
  39. | string $path | '/' | Le chemin d'accès au server sur lequel le cookie sera|
  40. | | | appliqué. Si $path est paramétré à '/foo/', il |
  41. | | | ne sera disponible que dans le répertoire /foo/ |
  42. | | | et tous les sous-répertoires comme /foo/bar/ de votre|
  43. | | | domaine. La valeur par défaut est le domaine entier. |
  44. | | | Vous pouvez définir cela directement à l'intérieur |
  45. | | | de la méthode write(). |
  46. +-----------------+--------------+------------------------------------------------------+
  47. | boolean $secure | false | Indique que le cookie ne devrait être transmis qu'au |
  48. | | | travers une connexion HTTPS sécurisée. Quand cela est|
  49. | | | défini à true, le cookie ne sera défini que si une |
  50. | | | connexion sécurisé existe.Vous pouvez définir cela |
  51. | | | directement à l'intérieur de la méthode write() |
  52. +-----------------+--------------+------------------------------------------------------+
  53. | boolean | false | Défini à true pour fabriquer uniquement des cookies |
  54. | $httpOnly | | HTTP. Les cookies seulement HTTP ne sont pas |
  55. | | | disponibles en JavaScript |
  56. +-----------------+--------------+------------------------------------------------------+
  57. Les extraits de code de controller suivants montrent comment inclure le
  58. component Cookie et paramétrer les variables du controller nécessaires pour
  59. écrire un cookie nommé 'baker\_id' pour le domaine 'example.com' qui a besoin
  60. d'une connexion sécurisée, qui est disponible au chemin
  61. '/bakers/preferences/', qui expire dans une heure, et est uniquement en HTTP.
  62. ::
  63. public $components = array('Cookie');
  64. public function beforeFilter() {
  65. parent::beforeFilter();
  66. $this->Cookie->name = 'baker_id';
  67. $this->Cookie->time = 3600; // ou '1 hour'
  68. $this->Cookie->path = '/bakers/preferences/';
  69. $this->Cookie->domain = 'example.com';
  70. $this->Cookie->secure = true; // ex. seulement envoyé si on utilise un HTTPS sécurisé
  71. $this->Cookie->key = 'qSI232qs*&sXOw!adre@34SAv!@*(XSL#$%)asGb$@11~_+!@#HKis~#^';
  72. $this->Cookie->httpOnly = true;
  73. $this->Cookie->type('aes');
  74. }
  75. Ensuite, regardons comment utiliser les différentes méthodes du Component
  76. Cookie.
  77. Utiliser le Component
  78. =====================
  79. Le Component Cookie offre plusieurs méthodes pour travailler avec les Cookies.
  80. .. php:method:: write(mixed $key, mixed $value = null, boolean $encrypt = true, mixed $expires = null)
  81. La méthode write() est le cœur du composant Cookie, $key est le
  82. nom de la variable désirée, et $value est l'information à stocker::
  83. $this->Cookie->write('nom', 'Rémy');
  84. Vous pouvez également grouper vos variables en utilisant la notation point
  85. '.' dans les paramètres de clé::
  86. $this->Cookie->write('User.name', 'Larry');
  87. $this->Cookie->write('User.role', 'Lead');
  88. Si vous voulez écrire plus d'une valeur dans le cookie en une fois, vous
  89. pouvez passer un tableau::
  90. $this->Cookie->write('User',
  91. array('name' => 'Larry', 'role' => 'Lead')
  92. );
  93. Toutes les valeurs dans le cookie sont chiffrées par défaut. Si vous voulez
  94. stocker vos valeurs en texte clair, définissez le troisième paramètre de la
  95. méthode write() à false. Vous devriez vous rappeler de définir le mode de
  96. chiffrement à 'aes' pour vous assurer que les valeurs sont chiffrées de façon
  97. sécurisée::
  98. $this->Cookie->write('name', 'Larry', false);
  99. Le dernier paramètre à écrire est $expires - le nombre de secondes
  100. avant que le cookie n'expire. Par convention, ce paramètre peut aussi
  101. être passé comme une chaîne de caractères que la fonction strtotime() de
  102. PHP comprend::
  103. // Les deux cookies expirent dans une heure.
  104. $this->Cookie->write('first_name', 'Larry', false, 3600);
  105. $this->Cookie->write('last_name', 'Masters', false, '1 hour');
  106. .. php:method:: read(mixed $key = null)
  107. Cette méthode est utilisée pour lire la valeur d'une variable de cookie
  108. avec le nom spécifié dans $key. ::
  109. // Sortie "Larry"
  110. echo $this->Cookie->read('name');
  111. // Vous pouvez aussi utiliser la notation par point pour lire
  112. echo $this->Cookie->read('User.name');
  113. // Pour prendre les variables que vous aviez groupées en utilisant
  114. // la notation par point comme tableau, faites quelque chose comme
  115. $this->Cookie->read('User');
  116. // ceci retourne quelque chose comme array('name' => 'Larry', 'role' => 'Lead')
  117. .. php:method:: check($key)
  118. :param string $key: La clé à vérifier.
  119. Utilisé pour vérifier si une clé/chemin existe et a une valeur non null.
  120. .. versionadded:: 2.3
  121. ``CookieComponent::check()`` a été ajoutée dans la version 2.3
  122. .. php:method:: delete(mixed $key)
  123. Efface une variable de cookie dont le nom est défini dans $key. Fonctionne avec la
  124. notation par point::
  125. // Efface une variable
  126. $this->Cookie->delete('bar');
  127. // Efface la variable bar du cookie, mais seulement dans foo.
  128. $this->Cookie->delete('foo.bar');
  129. .. php:method:: destroy()
  130. Détruit le cookie actuel.
  131. .. php:method:: type($type)
  132. Vous permet de changer le schéma de chiffrement. Par défaut, le schéma
  133. 'cipher' est utilisé pour une compatibilité rétroactive. Cependant, vous
  134. devriez toujours utiliser les schémas 'rijndael' ou 'aes'.
  135. .. versionchanged:: 2.2
  136. Le type 'rijndael' a été ajouté.
  137. .. versionadded:: 2.5
  138. Le type 'aes' a été ajouté.
  139. .. meta::
  140. :title lang=fr: Cookie
  141. :keywords lang=fr: array controller,php setcookie,cookie string,controller setup,string domain,default description,string name,session cookie,integers,variables,domain name,null