Zend_Validate-NotEmpty.xml 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 20043 -->
  3. <!-- Reviewed: no -->
  4. <sect2 id="zend.validate.set.notempty">
  5. <title>NotEmpty</title>
  6. <para>
  7. Dieser Prüfer erlaubt es zu prüfen ob ein angegebener Wert nicht leer ist. Das ist oft
  8. nützlich wenn man mit Formular Elementen oder anderen Benutzereingaben arbeitet, und man
  9. sicherstellen will das den benötigten Elementen Werte zugeordnet wurden.
  10. </para>
  11. <sect3 id="zend.validate.set.notempty.default">
  12. <title>Standardverhalten für Zend_Validate_NotEmpty</title>
  13. <para>
  14. Standardmäßig arbeitet diese Prüfung anders als man es laut <acronym>PHP</acronym>'s
  15. <methodname>empty()</methodname> Funktion erwarten würde. Im speziellen evaluiert diese
  16. Prüfung den den Integer <emphasis>0</emphasis> und den String '<emphasis>0</emphasis>'
  17. als leer.
  18. </para>
  19. <programlisting language="php"><![CDATA[
  20. $valid = new Zend_Validate_NotEmpty();
  21. $value = '';
  22. $result = $valid->isValid($value);
  23. // gibt false zurück
  24. ]]></programlisting>
  25. <note>
  26. <title>Unterschiedliches Standardverhalten zu PHP</title>
  27. <para>
  28. Ohne Angabe einer Konfiguration ist das Verhalten von
  29. <classname>Zend_Validate_NotEmpty</classname> anders als das von
  30. <acronym>PHP</acronym>.
  31. </para>
  32. </note>
  33. </sect3>
  34. <sect3 id="zend.validate.set.notempty.types">
  35. <title>Ändern des Verhaltens für Zend_Validate_NotEmpty</title>
  36. <para>
  37. Einige Projekte haben andere Ansichten davon was als "leerer" Wert angesehen wird: ein
  38. String der nur Leerzeichen enthält könnte als leer angesehen werden, oder
  39. <emphasis>0</emphasis> könnte als nicht leer angesehen werden (speziell für boolsche
  40. Sequenzen). Um den unterschiedlichen Notwendigkeiten gerecht zu werden erlaubt es
  41. <classname>Zend_Validate_NotEmpty</classname> die Typen zu konfigurieren welche als
  42. leer angesehen werden und jene die es nicht werden.
  43. </para>
  44. <para>
  45. Die folgenden Typen können behandelt werden:
  46. </para>
  47. <itemizedlist>
  48. <listitem>
  49. <para>
  50. <emphasis>boolean</emphasis>: Gibt <constant>FALSE</constant> zurück wenn der
  51. boolsche Wert <constant>FALSE</constant> ist.
  52. </para>
  53. </listitem>
  54. <listitem>
  55. <para>
  56. <emphasis>integer</emphasis>: Gibt <constant>FALSE</constant> zurück wenn ein
  57. Integerwert <emphasis>0</emphasis> angegeben ist. Standardmäßig ist diese
  58. Prüfung nicht aktiviert und gibt bei jedem Integerwert <constant>TRUE</constant>
  59. zurück.
  60. </para>
  61. </listitem>
  62. <listitem>
  63. <para>
  64. <emphasis>float</emphasis>: Gibt <constant>FALSE</constant> zurück wenn eine
  65. Gleitkommazahl angegeben ist. Standardmäßig ist diese Prüfung nicht aktiviert
  66. und gibt bei jeder Gleitkommazahl <constant>TRUE</constant> zurück.
  67. </para>
  68. </listitem>
  69. <listitem>
  70. <para>
  71. <emphasis>string</emphasis>: Gibt <constant>FALSE</constant> zurück wenn ein
  72. leerer String <emphasis>''</emphasis> angegeben wird.
  73. </para>
  74. </listitem>
  75. <listitem>
  76. <para>
  77. <emphasis>zero</emphasis>: Gibt <constant>FALSE</constant> zurück wenn das
  78. einzelne Zeichen Null (<emphasis>'0'</emphasis>) angegeben wird.
  79. </para>
  80. </listitem>
  81. <listitem>
  82. <para>
  83. <emphasis>empty_array</emphasis>: Gibt <constant>FALSE</constant> zurück wenn
  84. ein leeres <emphasis>array</emphasis> angegeben wird.
  85. </para>
  86. </listitem>
  87. <listitem>
  88. <para>
  89. <emphasis>null</emphasis>: Gibt <constant>FALSE</constant> zurück wenn ein
  90. <constant>NULL</constant> Wert angegeben wird.
  91. </para>
  92. </listitem>
  93. <listitem>
  94. <para>
  95. <emphasis>php</emphasis>: Gibt bei den gleichen Gründen
  96. <constant>FALSE</constant> zurück wo auch <acronym>PHP</acronym>'s Methode
  97. <methodname>empty()</methodname> <constant>TRUE</constant> zurückgeben würde.
  98. </para>
  99. </listitem>
  100. <listitem>
  101. <para>
  102. <emphasis>space</emphasis>: Gibt <constant>FALSE</constant> zurück wenn ein
  103. String angegeben wird der nur Leerzeichen enthält.
  104. </para>
  105. </listitem>
  106. <listitem>
  107. <para>
  108. <emphasis>all</emphasis>: Gibt bei allen oben stehenden Typen
  109. <constant>FALSE</constant> zurück.
  110. </para>
  111. </listitem>
  112. </itemizedlist>
  113. <para>
  114. Alle anderen Werte geben standardmäßig <constant>TRUE</constant> zurück.
  115. </para>
  116. <para>
  117. Es gibt verschiedene Wege um zu wählen welche der obigen Typen geprüft werden sollen.
  118. Man kann ein oder mehrere Typen angeben und Sie hinzufügen, man kann ein Array angeben,
  119. man kann Konstanten verwenden, oder man gibt einen textuellen String an. Siehe auch die
  120. folgenden Beispiele:
  121. </para>
  122. <programlisting language="php"><![CDATA[
  123. // Gibt bei 0 false zurück
  124. $validator = new Zend_Validate_NotEmpty(Zend_Validate_NotEmpty::INTEGER);
  125. // Gibt bei 0 oder '0' false zurück
  126. $validator = new Zend_Validate_NotEmpty(
  127. Zend_Validate_NotEmpty::INTEGER + Zend_NotEmpty::ZERO
  128. );
  129. // Gibt bei 0 oder '0' false zurück
  130. $validator = new Zend_Validate_NotEmpty(array(
  131. Zend_Validate_NotEmpty::INTEGER,
  132. Zend_Validate_NotEmpty::ZERO
  133. ));
  134. // Gibt bei 0 oder '0' false zurück
  135. $validator = new Zend_Validate_NotEmpty(array(
  136. 'integer',
  137. 'zero',
  138. ));
  139. ]]></programlisting>
  140. <para>
  141. Man kann auch eine Instanz von <classname>Zend_Config</classname> angeben um die
  142. gewünschten Typen zu setzen. Um Typen nach der Instanzierung zu setzen kann die
  143. Methode <methodname>setType()</methodname> verwendet werden.
  144. </para>
  145. </sect3>
  146. </sect2>
  147. <!--
  148. vim:se ts=4 sw=4 et:
  149. -->