Zend_Captcha-Adapters.xml 12 KB

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