Zend_Captcha-Adapters.xml 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 20765 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.captcha.adapters">
  5. <title>CAPTCHA Adapter</title>
  6. <para>
  7. Die folgenden Adapter werden mit dem Zend Framework standardmäßig ausgeliefert.
  8. </para>
  9. <sect2 id="zend.captcha.adapters.word">
  10. <title>Zend_Captcha_Word</title>
  11. <para>
  12. <classname>Zend_Captcha_Word</classname> ist ein abstrakter Adapter der als Basisklasse
  13. für die meisten anderen <acronym>CAPTCHA</acronym> Adapter fungiert. Er bietet
  14. Mutatoren für die Spezifizierung der Wortlänge, Session <acronym>TTL</acronym>, das
  15. Session Namespaceobjekt das verwendet werden soll, und die Session Namespaceklasse die
  16. für die Persistenz zu verwenden ist wenn man
  17. <classname>Zend_Session_Namespace</classname> nicht verwenden will.
  18. <classname>Zend_Captcha_Word</classname> kapselt die Prüflogik.
  19. </para>
  20. <para>
  21. Standardmäßig ist die Wortlänge 8 Zeichen, das Sessiontimeout 5 Minuten und für die
  22. Persistenz wird <classname>Zend_Session_Namespace</classname> verwendet (wobei der
  23. Namespace "<classname>Zend_Form_Captcha_&lt;captcha ID&gt;</classname>" verwendet
  24. wird).
  25. </para>
  26. <para>
  27. Zusätzlich zu den Methoden wie vom <classname>Zend_Captcha_Adapter</classname> Interface
  28. benötigt werden bietet <classname>Zend_Captcha_Word</classname> die folgenden Methoden
  29. an:
  30. </para>
  31. <itemizedlist>
  32. <listitem>
  33. <para>
  34. <methodname>setWordLen($length)</methodname> und
  35. <methodname>getWordLen()</methodname> erlauben es die Länge des erzeugten
  36. "Wortes" in Zeichen zu spezifizieren, und den aktuellen Wert zu erhalten.
  37. </para>
  38. </listitem>
  39. <listitem>
  40. <para>
  41. <methodname>setTimeout($ttl)</methodname> und
  42. <methodname>getTimeout()</methodname> erlauben es die Lebenszeit des
  43. Sessiontokens zu spezifizieren, und den aktuellen Wert er erhalten.
  44. <varname>$ttl</varname> sollte in Sekunden spezifiziert sein.
  45. </para>
  46. </listitem>
  47. <listitem>
  48. <para>
  49. <methodname>setSessionClass($class)</methodname> und
  50. <methodname>getSessionClass()</methodname> erlauben es eine alternative
  51. <classname>Zend_Session_Namespace</classname> Implementation zu spezifizieren
  52. die verwendet werden soll um das <acronym>CAPTCHA</acronym> Token persistent zu
  53. machen und den aktuellen Wert zu bekommen.
  54. </para>
  55. </listitem>
  56. <listitem>
  57. <para>
  58. <methodname>getId()</methodname> erlaubt es den aktuellen Tokenidentifikator zu
  59. erhalten.
  60. </para>
  61. </listitem>
  62. <listitem>
  63. <para>
  64. <methodname>getWord()</methodname> erlaubt es das erzeugte Wort das mit dem
  65. <acronym>CAPTCHA</acronym> verwendet wird zu erhalten. Es wird das Wort erzeugen
  66. wenn es bis dahin noch nicht erstellt wurde.
  67. </para>
  68. </listitem>
  69. <listitem>
  70. <para>
  71. <methodname>setSession(Zend_Session_Namespace $session)</methodname> erlaubt es
  72. ein Sessionobjekt zu spezifizieren das für die Persistenz des
  73. <acronym>CAPTCHA</acronym> Tokens verwendet wird.
  74. <methodname>getSession()</methodname> erlaubt es das aktuelle Sessionobjekt
  75. zu erhalten.
  76. </para>
  77. </listitem>
  78. </itemizedlist>
  79. <para>
  80. Alle Wort <acronym>CAPTCHA</acronym>s erlauben es ein Array von Optionen an den
  81. Konstruktor zu übergeben, oder alternativ dieses an
  82. <methodname>setOptions()</methodname> zu übergeben. Man kann auch ein
  83. <classname>Zend_Config</classname> Objekt an <methodname>setConfig()</methodname> zu
  84. übergeben. Standardmäßig können die <emphasis>wordLen</emphasis>,
  85. <emphasis>timeout</emphasis>, und <emphasis>sessionClass</emphasis> Schlüssel alle
  86. verwendet werden. Jede konkrete Implementation kann zusätzliche Schlüssel definieren
  87. oder die Optionen auf einem anderen Weg verwenden.
  88. </para>
  89. <note>
  90. <para>
  91. <classname>Zend_Captcha_Word</classname> ist eine abstrakte Klasse und kann nicht
  92. direkt instanziiert werden.
  93. </para>
  94. </note>
  95. </sect2>
  96. <sect2 id="zend.captcha.adapters.dumb">
  97. <title>Zend_Captcha_Dumb</title>
  98. <para>
  99. Der <classname>Zend_Captcha_Dumb</classname> Adapter ist fast selbsterklärend. Er
  100. bietet einen zufälligen String der in umgekehrter Reihenfolge eingegeben werden muß um
  101. validiert zu werden. Als solches ist es keine gute <acronym>CAPTCHA</acronym> Lösung,
  102. und sollte nur für Testzwecke verwendet werden. Er erweitert
  103. <classname>Zend_Captcha_Word</classname>.
  104. </para>
  105. </sect2>
  106. <sect2 id="zend.captcha.adapters.figlet">
  107. <title>Zend_Captcha_Figlet</title>
  108. <para>
  109. Der <classname>Zend_Captcha_Figlet</classname> Adapter verwendet
  110. <link linkend="zend.text.figlet"><classname>Zend_Text_Figlet</classname></link> um dem
  111. Benutzer ein Figlet zu präsentieren.
  112. </para>
  113. <para>
  114. Optionen die an den Konstruktor übergeben werden, werden auch an das
  115. <link linkend="zend.text.figlet"><classname>Zend_Text_Figlet</classname></link> Objekt
  116. übergeben. Schaue in die <link
  117. linkend="zend.text.figlet"><classname>Zend_Text_Figlet</classname></link>
  118. Dokumentation für Details darüber welche Konfigurationsoptionen vorhanden sind.
  119. </para>
  120. </sect2>
  121. <sect2 id="zend.captcha.adapters.image">
  122. <title>Zend_Captcha_Image</title>
  123. <para>
  124. Der <classname>Zend_Captcha_Image</classname> Adapter nimmt das erzeugte Wort und
  125. stellt es als Bild dar, führt diverse Verzerrungs-Permutationen durch und mach es so
  126. schwierig es automatisch zu entschlüsseln. Er benötigt die
  127. <ulink url="http://php.net/gd">GD Erweiterung</ulink> kompiliert mit TrueType oder
  128. Freetype Unterstützung. Aktuell kann der <classname>Zend_Captcha_Image</classname>
  129. Adapter nur <acronym>PNG</acronym> Bilder erzeugen.
  130. </para>
  131. <para>
  132. <classname>Zend_Captcha_Image</classname> erweitert
  133. <classname>Zend_Captcha_Word</classname>, und bietet zusätzlich die folgenden Methoden:
  134. </para>
  135. <itemizedlist>
  136. <listitem>
  137. <para>
  138. <methodname>setExpiration($expiration)</methodname> und
  139. <methodname>getExpiration()</methodname> erlauben es eine maximale Lebenszeit zu
  140. definieren die das <acronym>CAPTCHA</acronym> Bild auf dem Dateisystem bleibt.
  141. Das ist typischerweise längerer als die Session Lifetime. Die Garbage Collection
  142. läuft periodisch jedes Mal wenn das <acronym>CAPTCHA</acronym> Objekt enthalten
  143. ist, und löscht die Bilder die abgelaufen sind. Der Wert der Löschung sollte in
  144. Sekunden angegeben werden.
  145. </para>
  146. </listitem>
  147. <listitem>
  148. <para>
  149. <methodname>setGcFreq($gcFreq)</methodname> und
  150. <methodname>getGcFreg()</methodname> erlauben es zu Spezifizieren wie oft die
  151. Garbage Collection laufen soll. Die Garbage Collection wird alle
  152. <command>1/$gcFreq</command> Aufrufe ausgeführt. Standard ist 100.
  153. </para>
  154. </listitem>
  155. <listitem>
  156. <para>
  157. <methodname>setFont($font)</methodname> und <methodname>getFont()</methodname>
  158. erlauben es die Schrift zu Spezifizieren die man verwenden will.
  159. <varname>$font</varname> sollte ein voll qualifizierter Pfad zu der
  160. Schriftart-Datei sein. Dieser Wert wird benötigt; das <acronym>CAPTCHA</acronym>
  161. wird wärend der Erzeugung eine Ausnahme werfen wenn die Schriftdatei nicht
  162. spezifiziert wurde.
  163. </para>
  164. </listitem>
  165. <listitem>
  166. <para>
  167. <methodname>setFontSize($fsize)</methodname> und
  168. <methodname>getFontSize()</methodname> erlauben es die Schriftgröße in Pixel zu
  169. Spezifizieren die verwendet wird wenn das <acronym>CAPTCHA</acronym> erzeugt
  170. wird. Der Standardwert ist 24px.
  171. </para>
  172. </listitem>
  173. <listitem>
  174. <para>
  175. <methodname>setHeight($height)</methodname> und
  176. <methodname>getHeight()</methodname> erlauben es die Höhe in Pixel zu
  177. Spezifizieren die das erzeugte <acronym>CAPTCHA</acronym> Bild haben soll. Der
  178. Standardwert ist 50px.
  179. </para>
  180. </listitem>
  181. <listitem>
  182. <para>
  183. <methodname>setWidth($width)</methodname> und
  184. <methodname>getWidth()</methodname> erlauben es die Breite in Pixel zu
  185. Spezifizieren die das erzeugte <acronym>CAPTCHA</acronym> Bild haben soll. Der
  186. Standardwert ist 200px.
  187. </para>
  188. </listitem>
  189. <listitem>
  190. <para>
  191. <methodname>setImgDir($imgDir)</methodname> und
  192. <methodname>getImgDir()</methodname> erlauben es das Verzeichnis für das
  193. Speicher der <acronym>CAPTCHA</acronym> Bilder zu spezifizieren. Der
  194. Standardwert ist "<filename>./images/captcha/</filename>", was relativ zum
  195. Bootstrapskript zu sehen ist.
  196. </para>
  197. </listitem>
  198. <listitem>
  199. <para>
  200. <methodname>setImgUrl($imgUrl)</methodname> und
  201. <methodname>getImgUrl()</methodname> erlauben es den Relativen Pfad zum
  202. <acronym>CAPTCHA</acronym> Bild für die Verwendung im <acronym>HTML</acronym>
  203. Markup zu spezifizieren. Der Standardwert ist
  204. "<filename>/images/captcha/</filename>".
  205. </para>
  206. </listitem>
  207. <listitem>
  208. <para>
  209. <methodname>setSuffix($suffix)</methodname> und
  210. <methodname>getSuffix()</methodname> erlauben es die Endung des Dateinamens für
  211. das <acronym>CAPTCHA</acronym> Bild zu spezifizieren. Der Standardwert ist
  212. "<filename>.png</filename>". Beachte: Das Ändern dieses Wertes wird den Typ des
  213. erzeugten Bildes nicht ändern.
  214. </para>
  215. </listitem>
  216. </itemizedlist>
  217. <para>
  218. Alle der obigen Optionen können an den Konstruktor übergeben werden indem einfach der
  219. Präfix der 'set' Methode entfernt wird und der Anfangsbuchstabe kleingeschrieben wird:
  220. "suffix", "height", "imgUrl", usw.
  221. </para>
  222. </sect2>
  223. <sect2 id="zend.captcha.adapters.recaptcha">
  224. <title>Zend_Captcha_ReCaptcha</title>
  225. <para>
  226. Der <classname>Zend_Captcha_ReCaptcha</classname> Adapter verwendet
  227. <link linkend="zend.service.recaptcha">Zend_Service_ReCaptcha</link> um
  228. <acronym>CAPTCHA</acronym>s zu erzeugen und zu prüfen. Es bietet die folgenden Methoden
  229. an:
  230. </para>
  231. <itemizedlist>
  232. <listitem>
  233. <para>
  234. <methodname>setPrivKey($key)</methodname> und
  235. <methodname>getPrivKey()</methodname> erlauben es den privaten Schlüssel zu
  236. spezifizieren der für den ReCaptcha Service verwendet werden soll. Er muß wärend
  237. der Erstellung spezifiziert werden, auch wenn er jederzeit überschrieben werden
  238. kann.
  239. </para>
  240. </listitem>
  241. <listitem>
  242. <para>
  243. <methodname>setPubKey($key)</methodname> und
  244. <methodname>getPubKey()</methodname> erlauben es den öffentlichen Schlüssel zu
  245. spezifizieren der mit dem ReCaptcha Service verwendet werden soll. Er muß wärend
  246. der Erstellung spezifiziert werden, auch wenn er jederzeit überschrieben werden
  247. kann.
  248. </para>
  249. </listitem>
  250. <listitem>
  251. <para>
  252. <methodname>setService(Zend_Service_ReCaptcha $service)</methodname> und
  253. <methodname>getService()</methodname> erlauben es das ReCaptcha Serviceobjekt zu
  254. setzen und erhalten.
  255. </para>
  256. </listitem>
  257. </itemizedlist>
  258. </sect2>
  259. </sect1>