Zend_Captcha-Adapters.xml 12 KB

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