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