Zend_Validate-Set.xml 10 KB

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