Zend_Captcha-Adapters.xml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!-- EN-Revision: 15207 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.captcha.adapters">
  5. <title>Adaptateurs CAPTCHA</title>
  6. <para>Les adaptateurs suivants sont fournis dans Zend Framework par défaut.</para>
  7. <sect2 id="zend.captcha.adapters.word">
  8. <title>Zend_Captcha_Word</title>
  9. <para>
  10. <classname>Zend_Captcha_Word</classname> est un adaptateur abstrait qui sert de classe
  11. de base pour les autres adaptateurs CAPTCHA. Il fournit des mutateurs permettant de
  12. spécifier la taille du mot le TTL de session, l'objet namespace de session à utiliser
  13. pour la persistance. Aussi, il encapsule toute la logique de validation.
  14. </para>
  15. <para>
  16. Par défaut la taille du mot est de 8 caractères, le timeout de session est de 5
  17. minutes et l'objet d'espace de nom de session utilisé est
  18. <classname>Zend_Session_Namespace</classname> (avec l'espace de nom
  19. ("<classname>Zend_Form_Captcha_&lt;captcha ID&gt;</classname>").
  20. </para>
  21. <para>
  22. En plus des méthodes standards fournies par
  23. <classname>Zend_Captcha_Adapter</classname>, <classname>Zend_Captcha_Word</classname>
  24. propose les méthodes suivantes&#160;:
  25. </para>
  26. <itemizedlist>
  27. <listitem>
  28. <para>
  29. <code>setWordLen($length)</code> et <code>getWordLen()</code> vous
  30. permettent de piloter la taille du "mot" généré, en caractères.
  31. </para>
  32. </listitem>
  33. <listitem>
  34. <para>
  35. <code>setTimeout($ttl)</code> et <code>getTimeout()</code> vous donnent
  36. la main sur le temps-de-vie (TTL) du jeton de session. <code>$ttl</code> est
  37. exprimé en secondes.
  38. </para>
  39. </listitem>
  40. <listitem>
  41. <para>
  42. <code>setSessionClass($class)</code> et <code>getSessionClass()</code>
  43. vous permettent de piloter la classe de session, si vous désirez utiliser une
  44. alternative à <classname>Zend_Session_Namespace</classname>, ceci dans le but
  45. de faire persister le jeton captcha en session.
  46. </para>
  47. </listitem>
  48. <listitem>
  49. <para><code>getId()</code> retourne l'identifiant du jeton actuel.</para>
  50. </listitem>
  51. <listitem>
  52. <para>
  53. <code>getWord()</code> retourne le mot généré utilisé avec le CAPTCHA. Il
  54. sera généré pour vous si aucun n'existe déjà.
  55. </para>
  56. </listitem>
  57. <listitem>
  58. <para>
  59. <code>setSession(Zend_Session_Namespace $session)</code> permet
  60. d'injecter un objet de session qui sera utilisé pour faire persister le jeton
  61. de CAPTCHA. <code>getSession()</code> retourne l'objet de session actuellement
  62. utilisé.
  63. </para>
  64. </listitem>
  65. </itemizedlist>
  66. <para>
  67. Tous les captcha Word vous autorisent à passer un tableau d'options au
  68. constructeur, ou à <code>setOptions()</code> (un objet
  69. <classname>Zend_Config</classname> peut être utilisé avec <code>setConfig()</code>).
  70. Par défaut, les clés <code>timeout</code> <code>wordLen</code> et
  71. <code>sessionClass</code> seront utilisées.
  72. </para>
  73. <note>
  74. <para>Word est une classe abstraite et ne peut être utilisée directement.</para>
  75. </note>
  76. </sect2>
  77. <sect2 id="zend.captcha.adapters.dumb">
  78. <title>Zend_Captcha_Dumb</title>
  79. <para>
  80. L'adaptateur "Dumb" propose une chaine aléatoire qui doit être ressaisie, mais
  81. inversée. Ce n'est pas une solution CAPTCHA idéale (un robot peut la détourner), il
  82. devrait être utilisé comme solution de remplacement extrême, ou pour les tests. Il
  83. étend <classname>Zend_Captcha_Word</classname>.
  84. </para>
  85. </sect2>
  86. <sect2 id="zend.captcha.adapters.figlet">
  87. <title>Zend_Captcha_Figlet</title>
  88. <para>
  89. L'adaptateur Figlet utilise
  90. <link linkend="zend.text.figlet">Zend_Text_Figlet</link> pour présenter un captcha.
  91. Seuls les caractères alphabétiques sont utilisables.
  92. </para>
  93. <para>
  94. Les options passées au constructeur le seront pour l'objet
  95. <link linkend="zend.text.figlet">Zend_Text_Figlet</link> que l'adaptateur va utiliser.
  96. Voyez sa documentation pour plus d'informations.
  97. </para>
  98. </sect2>
  99. <sect2 id="zend.captcha.adapters.image">
  100. <title>Zend_Captcha_Image</title>
  101. <para>
  102. L'adaptateur Image prend le mot généré et le transforme en image difficile à
  103. analyser pour un programme informatique (robot). Pour cela, il nécessite l'
  104. <ulink url="http://php.net/gd">extension GD</ulink> de PHP, compilée avec le support
  105. TrueType et Freetype. Actuellement, l'adaptateur ne génère que des images PNG.
  106. </para>
  107. <para>
  108. <classname>Zend_Captcha_Image</classname> étend
  109. <classname>Zend_Captcha_Word</classname>, et propose les méthodes additionnelles
  110. suivantes&#160;:
  111. </para>
  112. <itemizedlist>
  113. <listitem>
  114. <para>
  115. <code>setExpiration($expiration)</code> et <code>getExpiration()</code>
  116. vous autorisent à manipuler le temps maximum que l'image CAPTCHA doit rester
  117. sur le disque. En général, il s'agit d'un temps supérieur à celui de la
  118. session. Un ramasse-miettes passe régulièrement à chaque instanciation de
  119. l'objet captcha Image : il détruit les images arrivées à expiration. La période
  120. d'expiration doit être exprimée en secondes.
  121. </para>
  122. </listitem>
  123. <listitem>
  124. <para>
  125. <code>setGcFreq($gcFreq)</code> et <code>getGcFreg()</code> vous
  126. permettent de manipuler la fréquence de collecte du ramasse-miettes des images.
  127. Le ramasse-miettes passera à une fréquence de <code>1/$gcFreq</code>. Par
  128. défaut 1/100, soit toutes les 100 requêtes.
  129. </para>
  130. </listitem>
  131. <listitem>
  132. <para>
  133. <code>setFont($font)</code> et <code>getFont()</code> vous donnent le
  134. moyen de manipuler la police que vous souhaitez utiliser. <code>$font</code>
  135. doit indiquer le chemin complet vers la police à utiliser. Une exception sera
  136. levée si vous ne spécifiez pas ce paramètre.
  137. </para>
  138. </listitem>
  139. <listitem>
  140. <para>
  141. <code>setFontSize($fsize)</code> et <code>getFontSize()</code> servent
  142. pour spécifier et récupérer la taille de la police à utiliser (en pixels). Par
  143. défaut : 24px.
  144. </para>
  145. </listitem>
  146. <listitem>
  147. <para>
  148. <code>setHeight($height)</code> et <code>getHeight()</code> servent pour
  149. spécifier et récupérer la hauteur de la police à utiliser (en pixels). Par
  150. défaut : 50px.
  151. </para>
  152. </listitem>
  153. <listitem>
  154. <para>
  155. <code>setWidth($width)</code> and <code>getWidth()</code> servent pour
  156. spécifier et récupérer la largeur de la police à utiliser (en pixels). Par
  157. défaut : 200px.
  158. </para>
  159. </listitem>
  160. <listitem>
  161. <para>
  162. <code>setImgDir($imgDir)</code> et <code>getImgDir()</code> vous
  163. permettent de manipuler le dossier dans lequel les images captcha générées
  164. seront stockées. Par défaut, il s'agit de "./images/captcha/", qui devrait être
  165. pris relativement au fichier de bootstrap du site.
  166. </para>
  167. </listitem>
  168. <listitem>
  169. <para>
  170. <code>setImgUrl($imgUrl)</code> et <code>getImgUrl()</code> vous donnent
  171. le moyen de manipuler le chemin relatif à utiliser pour la balise HTML servant
  172. à afficher l'image du captcha. Par défaut, il s'agit de
  173. "/images/captcha/".
  174. </para>
  175. </listitem>
  176. <listitem>
  177. <para>
  178. <code>setSuffix($suffix)</code> et <code>getSuffix()</code> vous donnent
  179. la main sur le suffixe à utiliser pour le nom du fichier de l'image générée par
  180. le captcha. Il s'agit par défaut de ".png". Note : changer ceci ne changera pas
  181. le type de l'image générée.
  182. </para>
  183. </listitem>
  184. </itemizedlist>
  185. <para>
  186. Toutes les options ci-dessus peuvent aussi être passées en constructeur.
  187. Supprimer la partie "set" de leur méthodes, et passez leur première lettre en minuscule
  188. pour avoir les clés du tableau d'options que le constructeur utilise. ("suffix",
  189. "height", "imgUrl", etc...).
  190. </para>
  191. </sect2>
  192. <sect2 id="zend.captcha.adapters.recaptcha">
  193. <title>Zend_Captcha_ReCaptcha</title>
  194. <para>
  195. L'adaptateur ReCaptcha utilise
  196. <link linkend="zend.service.recaptcha">Zend_Service_ReCaptcha</link> pour générer des
  197. CAPTCHA. Les méthodes suivantes lui sont propres&#160;:
  198. </para>
  199. <itemizedlist>
  200. <listitem>
  201. <para>
  202. <code>setPrivKey($key)</code> et <code>getPrivKey()</code> vous
  203. permettent de gérer la clé privée utilisée avec le service ReCaptcha. Cette clé
  204. doit être spécifiée en constructeur, mais peut être ensuite modifiée.
  205. </para>
  206. </listitem>
  207. <listitem>
  208. <para>
  209. <code>setPubKey($key)</code> et <code>getPubKey()</code> vous permettent
  210. de gérer la clé publique utilisée avec le service ReCaptcha. Cette clé doit
  211. être spécifiée en constructeur, mais peut être ensuite modifiée.
  212. </para>
  213. </listitem>
  214. <listitem>
  215. <para>
  216. <code>setService(Zend_Service_ReCaptcha $service)</code> et
  217. <code>getService()</code> vous permettent d'interagir directement avec l'objet
  218. service ReCaptcha utilisé par l'adaptateur.
  219. </para>
  220. </listitem>
  221. </itemizedlist>
  222. </sect2>
  223. </sect1>