Zend_Validate-Set.xml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 17172 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.validate.set" xmlns:xi="http://www.w3.org/2001/XInclude">
  5. <title>Standard Prüfklassen</title>
  6. <para>
  7. Zend Framework kommt mit einem Standardset von Prüfklassen, welche fertig zur Verwendung
  8. sind.
  9. </para>
  10. <sect2 id="zend.validate.set.alnum">
  11. <title>Alnum</title>
  12. <para>
  13. Gibt nur dann <constant>TRUE</constant> zurück wenn <varname>$value</varname> nur
  14. alphabetische und digitale Zeichen enthält. Dieser Prüfer enthält eine Option um
  15. auszuwählen ob Leerzeichen als gültig anzusehen sind.
  16. </para>
  17. <note>
  18. <para>
  19. Alphabetische Zeichen bedeuten Zeichen die in jeder Spache Wörter bilden. Trotzdem
  20. wird das englische Alphabet in den folgenden Sprachen für alphabethische Zeichen
  21. verwendet: Chinesisch, Japanisch, Koreanisch. Die Sprache wurde von
  22. <classname>Zend_Locale</classname> spezifiziert.
  23. </para>
  24. </note>
  25. </sect2>
  26. <sect2 id="zend.validate.set.alpha">
  27. <title>Alpha</title>
  28. <para>
  29. Gibt nur dann <constant>TRUE</constant> zurück wenn <varname>$value</varname> nur
  30. alphabetische Zeichen enthält. Dieser Prüfer enthält eine Option um auszuwählen ob
  31. Leerzeichen als gültig anzusehen sind.
  32. </para>
  33. </sect2>
  34. <sect2 id="zend.validate.set.barcode">
  35. <title>Barcode</title>
  36. <para>
  37. Dieser Prüfer wird mit einem Barcode Typ instanziert gegen den ein Barcode Wert geprüft
  38. werden soll. Aktuell werden die "<code>UPC-A</code>" (Universal Product Code) und
  39. "<code>EAN-13</code>" (European Article Number) Barcode Typen unterstützt, und die
  40. <methodname>isValid()</methodname> Methode gibt dann und nur dann true zurück wenn die
  41. Eingabe erfolgreich gegen den Barcode Prüfalgorithmus geprüft wurde. Es sollten alle von
  42. den Ziffern 0 bis 9 (0-9) unterschiedliche Zeichen vom Eingabewert entfernt werden bevor
  43. dieser an den Prüfer übergeben wird.
  44. </para>
  45. </sect2>
  46. <sect2 id="zend.validate.set.between">
  47. <title>Between</title>
  48. <para>
  49. Gibt nur dann <constant>TRUE</constant> zurück wenn <varname>$value</varname> zwischen
  50. dem minimalen und maximalen Grenzwert ist. Der Vergleich ist standardmäßig inklusive
  51. (<varname>$value</varname> kann gleich dem Grenzwert sein), kann aber überschrieben
  52. werden um einen strikten Vergleich dort durchzuführen wo <varname>$value</varname>
  53. strikt größer als das Minimum und strikt kleiner als das Maximum sein muß.
  54. </para>
  55. </sect2>
  56. <sect2 id="zend.validate.set.ccnum">
  57. <title>Ccnum</title>
  58. <para>
  59. Gibt nur dann <constant>TRUE</constant> zurück wenn <varname>$value</varname> dem Luhn
  60. Algorithmus (mod-10 Checksumme) für Kreditkarten Nummern folgt.
  61. </para>
  62. </sect2>
  63. <sect2 id="zend.validate.set.date">
  64. <title>Date</title>
  65. <para>
  66. Gibt nur dann <constant>TRUE</constant> zurück wenn <varname>$value</varname> ein
  67. gültiges Datum im Format <code>YYYY-MM-DD</code> ist. Wenn die optionale
  68. <code>locale</code> Option gesetzt ist, dann wird das Datum entsprechend dem gesetzten
  69. Gebietsschemas geprüft. Und wenn die optionale <code>format</code> Option gesetzt wird,
  70. dann wird dieses Format für die Prüfung herangezogen. Für Details über die optionalen
  71. Parametern siehe <link
  72. linkend="zend.date.others.comparison.table">Zend_Date::isDate()</link>.
  73. </para>
  74. </sect2>
  75. <xi:include href="Zend_Validate-Db.xml" />
  76. <sect2 id="zend.validate.set.digits">
  77. <title>Digits</title>
  78. <para>
  79. Gibt nur dann <constant>TRUE</constant> zurück wenn <varname>$value</varname> nur
  80. digitale Zeichen enthält.
  81. </para>
  82. </sect2>
  83. <xi:include href="Zend_Validate-EmailAddress.xml" />
  84. <sect2 id="zend.validate.set.float">
  85. <title>Float</title>
  86. <para>
  87. Gibt nur dann <constant>TRUE</constant> zurück wenn <varname>$value</varname> ein
  88. Fließkomma Wert ist. Seit Zend Framework 1.8 verwendet diese Prüfung auch das aktuelle
  89. Gebietsschema des Browsers, der Umgebung oder eines anwendungsweit gesetzten
  90. Gebietsschemas. Man kann natürlich die Zugriffsmethoden get/setLocale verwenden um das
  91. verwendete Gebietsschema zu verändern oder es bei der Erstellung einer Instanz dieser
  92. Prüfung angeben.
  93. </para>
  94. </sect2>
  95. <sect2 id="zend.validate.set.greater_than">
  96. <title>GreaterThan</title>
  97. <para>
  98. Gibt nur dann <constant>TRUE</constant> zurück wenn <varname>$value</varname> größer als
  99. die Minimale Grenze ist.
  100. </para>
  101. </sect2>
  102. <sect2 id="zend.validate.set.hex">
  103. <title>Hex</title>
  104. <para>
  105. Gibt nur dann <constant>TRUE</constant> zurück wenn <varname>$value</varname> nur
  106. Hexadezimale Digitale Zeichen enthält.
  107. </para>
  108. </sect2>
  109. <xi:include href="Zend_Validate-Hostname.xml" />
  110. <sect2 id="zend.validate.set.iban">
  111. <title>Iban</title>
  112. <para>
  113. Gibe nur dann <constant>TRUE</constant> zurück wenn <varname>$value</varname> eine
  114. gültige IBAN (Internationale Bank Account Nummer) enthält. IBAN Nummern werden gegen ein
  115. Land geprüft in dem Sie verwendet werden und durch eine Checksumme.
  116. </para>
  117. <para>
  118. Es gibt zwei Wege um IBAN Nummern zu prüfen. Als ersten Weg kann man ein Gebietsschema
  119. angeben das das Land repräsentiert. Jede angegebene IBAN Nummer wird das gegen dieses
  120. Land geprüft.
  121. </para>
  122. <programlisting language="php"><![CDATA[
  123. $validator = new Zend_Validate_Iban('de_AT');
  124. $iban = 'AT611904300234573201';
  125. if ($validator->isValid($iban)) {
  126. // IBAN scheint gültig zu sein
  127. } else {
  128. // IBAN ist ungültig
  129. foreach ($validator->getMessages() as $message) {
  130. echo "$message\n";
  131. }
  132. }
  133. ]]></programlisting>
  134. <para>
  135. Das sollte man tun wenn man IBAN Nummern gegen ein einzelnes Land prüfen will. Der
  136. einfachere Weg der Prüfung ist es kein Gebietsschema anzugeben wie im nächsten Beispiel
  137. gezeigt.
  138. </para>
  139. <programlisting language="php"><![CDATA[
  140. $validator = new Zend_Validate_Iban();
  141. $iban = 'AT611904300234573201';
  142. if ($validator->isValid($iban)) {
  143. // IBAN scheint gültig zu sein
  144. } else {
  145. // IBAN ist ungültig
  146. }
  147. ]]></programlisting>
  148. <para>
  149. Aber das zeigt ein großes Problem: Wenn man nur IBAN Nummern von einem einzelnen Land
  150. akzeptieren darf, zum Beispiel Frankreich, sind auch die IBAN Nummer von anderen Ländern
  151. gültig. Deshalb als Erinnerung: Wenn man IBAN Nummern gegen ein definiertes Land zu
  152. prüfen hat, sollte man ein Gebietsschema angeben. Und wenn man alle IBAN Nummern
  153. akzeptieren will unabhängig von irgendeinem Land kann der Einfachheit halber das
  154. Gebietsschema unterdrückt werden.
  155. </para>
  156. </sect2>
  157. <sect2 id="zend.validate.set.identical">
  158. <title>Identical</title>
  159. <para>
  160. Gibt nur dann <constant>TRUE</constant> zurück wenn der angegebene Token mit
  161. <varname>$value</varname> identisch ist. Diese Prüfung kann jeden beliebigen Typ
  162. handhaben.
  163. </para>
  164. <para>
  165. Der Token gegen den geprüft werden soll kann entweder als Parameter bei der
  166. Instanziierung gesetzt werden, oder durch die Verwendung der
  167. <methodname>setToken()</methodname> Methode.
  168. </para>
  169. <programlisting language="php"><![CDATA[
  170. // Setzen des Token bei der Instanziierung
  171. $validator = new Zend_Validate_Identical(array('one' => 'two'));
  172. if ($validator->isValid(array('one' => 'two'))) { // Token gültig
  173. // Irgendwas machen
  174. }
  175. // Setzen des Tokens durch Verwendung von setToken()
  176. $validator->setToken(true);
  177. if ($validator->isValid(1)) { // Token gültig
  178. // Irgendwas machen
  179. }
  180. ]]></programlisting>
  181. </sect2>
  182. <sect2 id="zend.validate.set.in_array">
  183. <title>InArray</title>
  184. <para>
  185. Gibt nur dann <constant>TRUE</constant> zurück wenn ein "needle"
  186. <varname>$value</varname> in einem "haystack" Array enthalten ist. Wenn die Strict
  187. Option <constant>TRUE</constant> ist, wird der Typ von <varname>$value</varname> auch
  188. geprüft.
  189. </para>
  190. </sect2>
  191. <sect2 id="zend.validate.set.int">
  192. <title>Int</title>
  193. <para>
  194. Gibt nur dann <constant>TRUE</constant> zurück wenn <varname>$value</varname> ein
  195. gültiger Integer ist. Seit Zend Framework 1.8 verwendet diese Prüfung auch das aktuelle
  196. Gebietsschema des Browsers, der Umgebung oder eines anwendungsweit gesetzten
  197. Gebietsschemas. Man kann natürlich die Zugriffsmethoden get/setLocale verwenden um das
  198. verwendete Gebietsschema zu verändern oder es bei der Erstellung einer Instanz dieser
  199. Prüfung angeben.
  200. </para>
  201. </sect2>
  202. <sect2 id="zend.validate.set.ip">
  203. <title>Ip</title>
  204. <para>
  205. Gibt nur dann <constant>TRUE</constant> zurück wenn <varname>$value</varname> eine
  206. gültige IP Adresse ist.
  207. </para>
  208. </sect2>
  209. <sect2 id="zend.validate.set.less_than">
  210. <title>LessThan</title>
  211. <para>
  212. Gibt nur dann <constant>TRUE</constant> zurück wenn <varname>$value</varname> kleiner
  213. als die Maximale Grenze ist.
  214. </para>
  215. </sect2>
  216. <sect2 id="zend.validate.set.not_empty">
  217. <title>NotEmpty</title>
  218. <para>
  219. Gibt nur dann <constant>TRUE</constant> zurück wenn <varname>$value</varname> kein
  220. leerer Wert ist.
  221. </para>
  222. </sect2>
  223. <sect2 id="zend.validate.set.regex">
  224. <title>Regex</title>
  225. <para>
  226. Gibt nur dann <constant>TRUE</constant> zurück wenn <varname>$value</varname> mit einem
  227. Regular Expression Pattern geprüft werden kann.
  228. </para>
  229. </sect2>
  230. <xi:include href="Zend_Validate-Sitemap.xml" />
  231. <sect2 id="zend.validate.set.string_length">
  232. <title>StringLength</title>
  233. <para>
  234. Gibt nur dann <constant>TRUE</constant> zurück wenn die Länge des Strings von
  235. <varname>$value</varname> mindstens ein Minimum und nicht größer als ein Maximum ist
  236. (wenn die max Option nicht <constant>NULL</constant> ist). Wirft die
  237. <methodname>setMin()</methodname> Methode eine Ausnahme wenn die minimale Länge auf
  238. einen größeren Wert gesetzt wird als die maximale Länge, und die
  239. <methodname>setMax()</methodname> Methode wirft eine Ausnahme wenn die maximale Länge
  240. auf einen kleineren Wert als die minimale Länge gesetzt wird. Seit Version 1.0.2
  241. unterstützt diese Klasse UTF-8 und andere Zeichensätze, basierend auf dem aktuellen Wert
  242. von <ulink
  243. url="http://www.php.net/manual/de/ref.iconv.php#iconv.configuration"><code>iconv.internal_encoding</code></ulink>.
  244. Wenn man ein anderes Encoding benötigt kann man es mit den Zugriffsmethoden getEncoding
  245. und setEncoding setzen.
  246. </para>
  247. </sect2>
  248. </sect1>
  249. <!--
  250. vim:se ts=4 sw=4 et:
  251. -->