| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect2 id="zend.validate.set.notempty">
- <title>NotEmpty</title>
- <para>
- Dieser Prüfer erlaubt es zu prüfen ob ein angegebener Wert nicht leer ist. Das ist oft
- nützlich wenn man mit Formular Elementen oder anderen Benutzereingaben arbeitet, und man
- sicherstellen will das den benötigten Elementen Werte zugeordnet wurden.
- </para>
- <sect3 id="zend.validate.set.notempty.options">
- <title>Unterstützte Optionen für Zend_Validate_NotEmpty</title>
- <para>
- Die folgenden Optionen werden für <classname>Zend_Validate_NotEmpty</classname>
- unterstützt:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis><property>type</property></emphasis>: Setzt den Typ der Prüfung
- welcher durchgeführt wird. Für Details sollte in <link
- linkend="zend.validate.set.notempty.types">diesem Abschnitt</link>
- nachgesehen werden.
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
- <sect3 id="zend.validate.set.notempty.default">
- <title>Standardverhalten für Zend_Validate_NotEmpty</title>
- <para>
- Standardmäßig arbeitet diese Prüfung anders als man es laut <acronym>PHP</acronym>'s
- <methodname>empty()</methodname> Funktion erwarten würde. Im speziellen evaluiert diese
- Prüfung den den Integer <emphasis>0</emphasis> und den String '<emphasis>0</emphasis>'
- als leer.
- </para>
- <programlisting language="php"><![CDATA[
- $valid = new Zend_Validate_NotEmpty();
- $value = '';
- $result = $valid->isValid($value);
- // gibt false zurück
- ]]></programlisting>
- <note>
- <title>Unterschiedliches Standardverhalten zu PHP</title>
- <para>
- Ohne Angabe einer Konfiguration ist das Verhalten von
- <classname>Zend_Validate_NotEmpty</classname> anders als das von
- <acronym>PHP</acronym>.
- </para>
- </note>
- </sect3>
- <sect3 id="zend.validate.set.notempty.types">
- <title>Ändern des Verhaltens für Zend_Validate_NotEmpty</title>
- <para>
- Einige Projekte haben andere Ansichten davon was als "leerer" Wert angesehen wird: ein
- String der nur Leerzeichen enthält könnte als leer angesehen werden, oder
- <emphasis>0</emphasis> könnte als nicht leer angesehen werden (speziell für boolsche
- Sequenzen). Um den unterschiedlichen Notwendigkeiten gerecht zu werden erlaubt es
- <classname>Zend_Validate_NotEmpty</classname> die Typen zu konfigurieren welche als
- leer angesehen werden und jene die es nicht werden.
- </para>
- <para>
- Die folgenden Typen können behandelt werden:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis>boolean</emphasis>: Gibt <constant>FALSE</constant> zurück wenn der
- boolsche Wert <constant>FALSE</constant> ist.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>integer</emphasis>: Gibt <constant>FALSE</constant> zurück wenn ein
- Integerwert <emphasis>0</emphasis> angegeben ist. Standardmäßig ist diese
- Prüfung nicht aktiviert und gibt bei jedem Integerwert <constant>TRUE</constant>
- zurück.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>float</emphasis>: Gibt <constant>FALSE</constant> zurück wenn die
- Gleitkommazahl <emphasis>0.0</emphasis> angegeben ist. Standardmäßig ist diese
- Prüfung nicht aktiviert und gibt bei jeder Gleitkommazahl
- <constant>TRUE</constant> zurück.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>string</emphasis>: Gibt <constant>FALSE</constant> zurück wenn ein
- leerer String <emphasis>''</emphasis> angegeben wird.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>zero</emphasis>: Gibt <constant>FALSE</constant> zurück wenn das
- einzelne Zeichen Null (<emphasis>'0'</emphasis>) angegeben wird.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>empty_array</emphasis>: Gibt <constant>FALSE</constant> zurück wenn
- ein leeres <emphasis>array</emphasis> angegeben wird.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>null</emphasis>: Gibt <constant>FALSE</constant> zurück wenn ein
- <constant>NULL</constant> Wert angegeben wird.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>php</emphasis>: Gibt bei den gleichen Gründen
- <constant>FALSE</constant> zurück wo auch <acronym>PHP</acronym>'s Methode
- <methodname>empty()</methodname> <constant>TRUE</constant> zurückgeben würde.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>space</emphasis>: Gibt <constant>FALSE</constant> zurück wenn ein
- String angegeben wird der nur Leerzeichen enthält.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>object</emphasis>: Gibt <constant>TRUE</constant> zurück wenn ein
- Objekt angegeben wurde. <constant>FALSE</constant> wird zurückgegeben wenn
- <property>object</property> nicht erlaubt, aber ein Objekt angegeben wurde.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>object_string</emphasis>: Gibt <constant>FALSE</constant> zurück wenn
- ein Objekt angegeben wurde und dessen <methodname>__toString()</methodname>
- Methode einen leeren String zurückgibt.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>object_count</emphasis>: Gibt <constant>FALSE</constant> zurück wenn
- ein Objekt angegeben wurde, es ein <classname>Countable</classname> Interface
- hat und seine Anzahl 0 ist.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis>all</emphasis>: Gibt bei allen oben stehenden Typen
- <constant>FALSE</constant> zurück.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- Alle anderen Werte geben standardmäßig <constant>TRUE</constant> zurück.
- </para>
- <para>
- Es gibt verschiedene Wege um zu wählen welche der obigen Typen geprüft werden sollen.
- Man kann ein oder mehrere Typen angeben und Sie hinzufügen, man kann ein Array angeben,
- man kann Konstanten verwenden, oder man gibt einen textuellen String an. Siehe auch die
- folgenden Beispiele:
- </para>
- <programlisting language="php"><![CDATA[
- // Gibt bei 0 false zurück
- $validator = new Zend_Validate_NotEmpty(Zend_Validate_NotEmpty::INTEGER);
- // Gibt bei 0 oder '0' false zurück
- $validator = new Zend_Validate_NotEmpty(
- Zend_Validate_NotEmpty::INTEGER + Zend_NotEmpty::ZERO
- );
- // Gibt bei 0 oder '0' false zurück
- $validator = new Zend_Validate_NotEmpty(array(
- Zend_Validate_NotEmpty::INTEGER,
- Zend_Validate_NotEmpty::ZERO
- ));
- // Gibt bei 0 oder '0' false zurück
- $validator = new Zend_Validate_NotEmpty(array(
- 'integer',
- 'zero',
- ));
- ]]></programlisting>
- <para>
- Man kann auch eine Instanz von <classname>Zend_Config</classname> angeben um die
- gewünschten Typen zu setzen. Um Typen nach der Instanzierung zu setzen kann die
- Methode <methodname>setType()</methodname> verwendet werden.
- </para>
- </sect3>
- </sect2>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|