[ZF-10089] Zend_Log
[zend.git] / documentation / manual / zh / module_specs / Zend_Captcha-Adapters.xml
blobdc33d066e364b204254f08486d1051a6eb50781e
1 <sect1 id="zend.captcha.adapters">\r
2     <title>Captcha 适配器</title>\r
3 \r
4     <para>\r
5         Zend Framework 缺省地带有下列适配器。\r
6     </para>\r
7 \r
8     <sect2 id="zend.captcha.adapters.word">\r
9         <title>Zend_Captcha_Word</title>\r
11         <para>\r
12             Zend_Captcha_Word 是个摘要适配器,它是 Dumb、Figlet 和 Image 适配器的基础。\r
13             ,它提供了增变器用来指定字符长度、会话 TTL 、会话命名空间对象,如果你不想\r
14             使用 Zend_Session_Namespace,它提供了会话命名空间来用于持久。\r
15             另外,它封装了所有校验逻辑。\r
16         </para>\r
18         <para>\r
19             缺省地,字符长度为 8,会话超时为 5 分钟,Zend_Session_Namespace\r
20             用于持久(使用命名空间"Zend_Form_Captcha_&lt;captcha ID&gt;")。\r
21         </para>\r
23         <para>\r
24             除了 <code>Zend_Captcha_Adapter</code> 接口要求的标准方法外,\r
25             <code>Zend_Captcha_Word</code> 还有下列方法:\r
26         </para>\r
28         <itemizedlist>\r
29             <listitem><para>\r
30                 <code>setWordLen($length)</code> 和 <code>getWordLen()</code>\r
31                 指定生成的“字符”的长度和获取当前值。\r
32             </para></listitem>\r
34             <listitem><para>\r
35                 <code>setTimeout($ttl)</code> 和 <code>getTimeout()</code>\r
36                 指定会话令牌的 time-to-live 和获取当前值。<code>$ttl</code> 以秒计。\r
37             </para></listitem>\r
39             <listitem><para>\r
40                 <code>setSessionClass($class)</code> 和\r
41                 <code>getSessionClass()</code> 指定替代的\r
42                 <code>Zend_Session_Namespace</code> 实现来持久 captcha 令牌和获取当前值。\r
43             </para></listitem>\r
45             <listitem><para>\r
46                 <code>getId()</code> 获取当前令牌标识符。\r
47             </para></listitem>\r
49             <listitem><para>\r
50                 <code>getWord()</code> 获取用于 captcha 的生成字符,如果以前没有生成,它将生成一个。\r
51             </para></listitem>\r
53             <listitem><para>\r
54                 <code>setSession(Zend_Session_Namespace $session)</code> 指定一个会话对象用来持久 captcha 令牌;\r
55                 <code>getSession()</code> 获取当前会话对象。\r
56             </para></listitem>\r
57         </itemizedlist>\r
59         <para>\r
61             所有字符 captchas 传递一个选项数组给构造器,或者把它们传递给\r
62             <code>setOptions()</code> (或传递一个 <code>Zend_Config</code> 对象给 <code>setConfig()</code>)。\r
63             缺省地,可能使用所有的键 <code>wordLen</code>、 <code>timeout</code> 和\r
64             <code>sessionClass</code> ;每个具体的实现可能定义另外的键或选项。\r
65         </para>\r
67         <note><para>\r
68             记住,Word 是个摘要类并且可能不能直接初始化。\r
69         </para></note>\r
70     </sect2>\r
72     <sect2 id="zend.captcha.adapters.dumb">\r
73         <title>Zend_Captcha_Dumb</title>\r
75         <para>\r
76             Dumb 适配器通常是自解释的。它提供了随机字符串需要用反序输入来校验。\r
77             这样,它不是一个好的 CAPTCHA 方案,只用于测试或者最后的方案。\r
78             它继承 <code>Zend_Captcha_Word</code>。\r
79         </para>\r
80     </sect2>\r
82     <sect2 id="zend.captcha.adapters.figlet">\r
83         <title>Zend_Captcha_Figlet</title>\r
85         <para>\r
86             Figlet 适配器利用 <link\r
87                 linkend="zend.text.figlet">Zend_Text_Figlet</link> 来展示一个\r
88             Figlet 给用户。Figlet captchas 只限于字符。\r
89         </para>\r
91         <para>\r
92             传递给构造器的选项也可以传递给适配器使用的 <link\r
93                 linkend="zend.text.figlet">Zend_Text_Figlet</link> 对象。\r
94             请参考关于配置选项的细节的文档。\r
95         </para>\r
96     </sect2>\r
98     <sect2 id="zend.captcha.adapters.image">\r
99         <title>Zend_Captcha_Image</title>\r
101         <para>\r
102             Image 适配器使用生成的字符并解析为图像,并把它变换成难以自动解密。\r
103             它需要 <ulink url="http://php.net/gd">GD extension</ulink>,使用\r
104             TrueType 或 Freetype 支持的编译。目前,Image 适配器只能产生 PNG 图像。\r
105         </para>\r
107         <para>\r
108             <code>Zend_Captcha_Image</code> 集成\r
109             <code>Zend_Captcha_Word</code>,并附加了下列方法:\r
110         </para>\r
112         <itemizedlist>\r
113             <listitem><para>\r
114                 <code>setExpiration($expiration)</code> 和\r
115                 <code>getExpiration()</code> 指定 captcha 图像可以保留在文件系统\r
116                 中的最大生命周期。一般长于会话的生命周期。每次调用 captcha 对象,\r
117                 垃圾收集就运行一次,过期的图像就被清除。过期值以秒计。\r
118             </para></listitem>\r
120             <listitem><para>\r
121                 <code>setGcFreq($gcFreq)</code> 和 <code>getGcFreg()</code>\r
122                 指定垃圾收集运行的频度。每 <code>1/$gcFreq</code> 垃圾收集就运行一次(缺省值为 100)。\r
123             </para></listitem>\r
125             <listitem><para>\r
126                 <code>setFont($font)</code> 和 <code>getFont()</code>\r
127                 指定要用的字体。它是到字体文件的全路径。如果没有设置这个值,captcha\r
128                 就在生成的时候抛出异常。字体是必需的。\r
129             </para></listitem>\r
131             <listitem><para>\r
132                 <code>setFontSize($fsize)</code> 和 <code>getFontSize()</code>\r
133                 指定字体尺寸,以象素为单位,用于生成 captcha。缺省值为 24px。\r
134             </para></listitem>\r
136             <listitem><para>\r
137                 <code>setHeight($height)</code> 和 <code>getHeight()</code>\r
138                 指定生成 captcha 图像的高度,以象素为单位。缺省值为 50px。\r
139             </para></listitem>\r
141             <listitem><para>\r
142                 <code>setWidth($width)</code> 和 <code>getWidth()</code>\r
143                 指定生成 captcha 图像的宽度,以象素为单位。缺省值为 200px 。\r
144             </para></listitem>\r
146             <listitem><para>\r
147                 <code>setImgDir($imgDir)</code> 和 <code>getImgDir()</code>\r
148                 指定 captcha 图像存储的目录。缺省为 "./images/captcha/" ,相对于引导(bootstrap)脚本。\r
149             </para></listitem>\r
151             <listitem><para>\r
152                 <code>setImgUrl($imgUrl)</code> 和 <code>getImgUrl()</code>\r
153                 指定用于 HTML 标记语言的 captcha 图像的相对路径。 缺省为 "/images/captcha/"。\r
154             </para></listitem>\r
156             <listitem><para>\r
157                 <code>setSuffix($suffix)</code> 和 <code>getSuffix()</code>\r
158                 指定文件名后缀。缺省为 ".png" 。注:它的改变不影响产生的图像类型。\r
159             </para></listitem>\r
160         </itemizedlist>\r
162         <para>\r
163             所有上述选项都可作为选项传递给构造器,只要去掉 'set' 方法前缀并\r
164             把首字母变成小写:如 "suffix"、 "height"、"imgUrl"  等。\r
165         </para>\r
166     </sect2>\r
168     <sect2 id="zend.captcha.adapters.recaptcha">\r
169         <title>Zend_Captcha_ReCaptcha</title>\r
171         <para>\r
172             ReCaptcha 适配器利用 <link\r
173                 linkend="zend.service.recaptcha">Zend_Service_ReCaptcha</link>\r
174             来生成校验 captchas。它有下列方法:\r
175         </para>\r
177         <itemizedlist>\r
178             <listitem><para>\r
179                 <code>setPrivKey($key)</code> 和 <code>getPrivKey()</code>\r
180                 让你指定和 ReCaptcha 服务一起使用的私钥。这必需在构造期间指定,尽管任何时候它都可以被覆盖。\r
181             </para></listitem>\r
183             <listitem><para>\r
184                 <code>setPubKey($key)</code> 和 <code>getPubKey()</code>\r
185                 让你指定和 ReCaptcha 服务一起使用的公钥。这必需在构造期间指定,尽管任何时候它都可以被覆盖。\r
186             </para></listitem>\r
188             <listitem><para>\r
189                 <code>setService(Zend_Service_ReCaptcha $service)</code> 和\r
190                 <code>getService()</code> 让你指定并和 ReCaptcha 服务对象交互使用。\r
191             </para></listitem>\r
192         </itemizedlist>\r
193     </sect2>\r
194 </sect1>\r
195 <!--\r
196 vim:se ts=4 sw=4 et:\r
197 -->\r