1 <sect1 id="zend.captcha.adapters">
\r
2 <title>Captcha 适配器</title>
\r
5 Zend Framework 缺省地带有下列适配器。
\r
8 <sect2 id="zend.captcha.adapters.word">
\r
9 <title>Zend_Captcha_Word</title>
\r
12 Zend_Captcha_Word 是个摘要适配器,它是 Dumb、Figlet 和 Image 适配器的基础。
\r
13 ,它提供了增变器用来指定字符长度、会话 TTL 、会话命名空间对象,如果你不想
\r
14 使用 Zend_Session_Namespace,它提供了会话命名空间来用于持久。
\r
19 缺省地,字符长度为 8,会话超时为 5 分钟,Zend_Session_Namespace
\r
20 用于持久(使用命名空间"Zend_Form_Captcha_<captcha ID>")。
\r
24 除了 <code>Zend_Captcha_Adapter</code> 接口要求的标准方法外,
\r
25 <code>Zend_Captcha_Word</code> 还有下列方法:
\r
30 <code>setWordLen($length)</code> 和 <code>getWordLen()</code>
\r
35 <code>setTimeout($ttl)</code> 和 <code>getTimeout()</code>
\r
36 指定会话令牌的 time-to-live 和获取当前值。<code>$ttl</code> 以秒计。
\r
40 <code>setSessionClass($class)</code> 和
\r
41 <code>getSessionClass()</code> 指定替代的
\r
42 <code>Zend_Session_Namespace</code> 实现来持久 captcha 令牌和获取当前值。
\r
46 <code>getId()</code> 获取当前令牌标识符。
\r
50 <code>getWord()</code> 获取用于 captcha 的生成字符,如果以前没有生成,它将生成一个。
\r
54 <code>setSession(Zend_Session_Namespace $session)</code> 指定一个会话对象用来持久 captcha 令牌;
\r
55 <code>getSession()</code> 获取当前会话对象。
\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
68 记住,Word 是个摘要类并且可能不能直接初始化。
\r
72 <sect2 id="zend.captcha.adapters.dumb">
\r
73 <title>Zend_Captcha_Dumb</title>
\r
76 Dumb 适配器通常是自解释的。它提供了随机字符串需要用反序输入来校验。
\r
77 这样,它不是一个好的 CAPTCHA 方案,只用于测试或者最后的方案。
\r
78 它继承 <code>Zend_Captcha_Word</code>。
\r
82 <sect2 id="zend.captcha.adapters.figlet">
\r
83 <title>Zend_Captcha_Figlet</title>
\r
87 linkend="zend.text.figlet">Zend_Text_Figlet</link> 来展示一个
\r
88 Figlet 给用户。Figlet captchas 只限于字符。
\r
92 传递给构造器的选项也可以传递给适配器使用的 <link
\r
93 linkend="zend.text.figlet">Zend_Text_Figlet</link> 对象。
\r
98 <sect2 id="zend.captcha.adapters.image">
\r
99 <title>Zend_Captcha_Image</title>
\r
102 Image 适配器使用生成的字符并解析为图像,并把它变换成难以自动解密。
\r
103 它需要 <ulink url="http://php.net/gd">GD extension</ulink>,使用
\r
104 TrueType 或 Freetype 支持的编译。目前,Image 适配器只能产生 PNG 图像。
\r
108 <code>Zend_Captcha_Image</code> 集成
\r
109 <code>Zend_Captcha_Word</code>,并附加了下列方法:
\r
114 <code>setExpiration($expiration)</code> 和
\r
115 <code>getExpiration()</code> 指定 captcha 图像可以保留在文件系统
\r
116 中的最大生命周期。一般长于会话的生命周期。每次调用 captcha 对象,
\r
117 垃圾收集就运行一次,过期的图像就被清除。过期值以秒计。
\r
121 <code>setGcFreq($gcFreq)</code> 和 <code>getGcFreg()</code>
\r
122 指定垃圾收集运行的频度。每 <code>1/$gcFreq</code> 垃圾收集就运行一次(缺省值为 100)。
\r
126 <code>setFont($font)</code> 和 <code>getFont()</code>
\r
127 指定要用的字体。它是到字体文件的全路径。如果没有设置这个值,captcha
\r
128 就在生成的时候抛出异常。字体是必需的。
\r
132 <code>setFontSize($fsize)</code> 和 <code>getFontSize()</code>
\r
133 指定字体尺寸,以象素为单位,用于生成 captcha。缺省值为 24px。
\r
137 <code>setHeight($height)</code> 和 <code>getHeight()</code>
\r
138 指定生成 captcha 图像的高度,以象素为单位。缺省值为 50px。
\r
142 <code>setWidth($width)</code> 和 <code>getWidth()</code>
\r
143 指定生成 captcha 图像的宽度,以象素为单位。缺省值为 200px 。
\r
147 <code>setImgDir($imgDir)</code> 和 <code>getImgDir()</code>
\r
148 指定 captcha 图像存储的目录。缺省为 "./images/captcha/" ,相对于引导(bootstrap)脚本。
\r
152 <code>setImgUrl($imgUrl)</code> 和 <code>getImgUrl()</code>
\r
153 指定用于 HTML 标记语言的 captcha 图像的相对路径。 缺省为 "/images/captcha/"。
\r
157 <code>setSuffix($suffix)</code> 和 <code>getSuffix()</code>
\r
158 指定文件名后缀。缺省为 ".png" 。注:它的改变不影响产生的图像类型。
\r
163 所有上述选项都可作为选项传递给构造器,只要去掉 'set' 方法前缀并
\r
164 把首字母变成小写:如 "suffix"、 "height"、"imgUrl" 等。
\r
168 <sect2 id="zend.captcha.adapters.recaptcha">
\r
169 <title>Zend_Captcha_ReCaptcha</title>
\r
172 ReCaptcha 适配器利用 <link
\r
173 linkend="zend.service.recaptcha">Zend_Service_ReCaptcha</link>
\r
174 来生成校验 captchas。它有下列方法:
\r
179 <code>setPrivKey($key)</code> 和 <code>getPrivKey()</code>
\r
180 让你指定和 ReCaptcha 服务一起使用的私钥。这必需在构造期间指定,尽管任何时候它都可以被覆盖。
\r
184 <code>setPubKey($key)</code> 和 <code>getPubKey()</code>
\r
185 让你指定和 ReCaptcha 服务一起使用的公钥。这必需在构造期间指定,尽管任何时候它都可以被覆盖。
\r
189 <code>setService(Zend_Service_ReCaptcha $service)</code> 和
\r
190 <code>getService()</code> 让你指定并和 ReCaptcha 服务对象交互使用。
\r
196 vim:se ts=4 sw=4 et:
\r