| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect2 id="zend.validate.set.identical">
- <title>Identical</title>
- <para>
- <classname>Zend_Validate_Identical</classname> erlaubt es zu prüfen ob ein angegebener Wert
- mit einem angegebenen Vergleichswert identisch ist.
- </para>
- <sect3 id="zend.validate.set.identical.options">
- <title>Unterstützte Optionen für Zend_Validate_Identical</title>
- <para>
- Die folgenden Optionen werden für <classname>Zend_Validate_Identical</classname>
- unterstützt:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis><property>strict</property></emphasis>: Definiert ob die Prüfung
- strikt durchgeführt werden soll. Der Standardwert ist <constant>TRUE</constant>.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><property>token</property></emphasis>: Setzt den Token gegen den die
- Eingabe geprüft werden soll.
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
- <sect3 id="zend.validate.set.identical.basic">
- <title>Grundsätzliche Verwendung</title>
- <para>
- Um zu prüfen ob zwei Werte identisch sind muss man den originalen Wert als
- Vergleichswert setzen. Siehe das folgende Beispiel welches zwei Strings vergleicht.
- </para>
- <programlisting language="php"><![CDATA[
- $valid = new Zend_Validate_Identical('original');
- if ($valid->isValid($value) {
- return true;
- }
- ]]></programlisting>
- <para>
- Die Prüfung wird nur dann <constant>TRUE</constant> zurückgeben wenn beide Werte 100%
- identisch sind. In unserem Beispiel wenn <varname>$value</varname> 'original' ist.
- </para>
- <para>
- Man kann den gewünschten Token auch im Nachhinein durch Verwendung der Methode
- <methodname>setToken()</methodname> setzen und mit <methodname>getToken()</methodname>
- den aktuell gesetzten Token erhalten.
- </para>
- </sect3>
- <sect3 id="zend.validate.set.identical.types">
- <title>Identische Objekte</title>
- <para>
- Natürlich kann <classname>Zend_Validate_Identical</classname> nicht nur Strings prüfen,
- sondern jeden Variablentyp wie Boolean, Integer, Float, Array oder sogar Objekte. Wie
- bereits notiert müssen Vergleichswert und Wert identisch sein.
- </para>
- <programlisting language="php"><![CDATA[
- $valid = new Zend_Validate_Identical(123);
- if ($valid->isValid($input)) {
- // Der Wert scheint gültig zu sein
- } else {
- // Der Wert ist ungültig
- }
- ]]></programlisting>
- <note>
- <title>Vergleich des Typs</title>
- <para>
- Man sollte darauf acht geben das der Typ einer Variable für die Prüfung verwendet
- wird. Das bedeutet das der String <emphasis>'3'</emphasis> nicht identisch ist mit
- dem Integerwert <emphasis>3</emphasis>. Wenn man eine nicht strikte Prüfung
- durchführen will muss man die <property>strict</property> Option setzen.
- </para>
- </note>
- </sect3>
- <sect3 id="zend.validate.set.identical.formelements">
- <title>Formular Elemente</title>
- <para>
- <classname>Zend_Validate_Identical</classname> unterstützt auch den Vergleich von
- Formularelementen. Das kann getan werden indem der Name des Elements als
- <property>token</property> verwendet wird. Siehe das folgende Beispiel:
- </para>
- <programlisting language="php"><![CDATA[
- $form->addElement('password', 'elementOne');
- $form->addElement('password', 'elementTwo', array(
- 'validators' => array(
- array('identical', false, array('token' => 'elementOne'))
- )
- ));
- ]]></programlisting>
- <para>
- Indem der Elementname vom ersten Element als <property>token</property> für das zweite
- Element verwendet wird, prüft der Prüfer ob das zweite Element gleich dem ersten Element
- ist. Im Falle das der Benutzer keine zwei identischen Werte eingegeben hat, erhält man
- einen Prüffehler.
- </para>
- </sect3>
- <sect3 id="zend.validate.set.identical.strict">
- <title>Strikte Prüfung</title>
- <para>
- Wie vorher erwähnt prüft <classname>Zend_Validate_Identical</classname> die Token
- strikt. Man kann dieses Verhalten ändern indem die <property>strict</property> Option
- verwendet wird. Der Standardwert für diese Eigenschaft ist <constant>TRUE</constant>.
- </para>
- <programlisting language="php"><![CDATA[
- $valid = new Zend_Validate_Identical(array('token' => 123, 'strict' => FALSE));
- $input = '123';
- if ($valid->isValid($input)) {
- // Die Eingabe scheint gültig zu sein
- } else {
- // Die Eingabe ist ungültig
- }
- ]]></programlisting>
- <para>
- Der Unterschied zum vorhergehenden Beispiel besteht darin dass die Prüfung in diesem
- Fall <constant>TRUE</constant> zurückgibt, selbst wenn man einen Integerwert mit einem
- String prüft solange der Inhalt identisch aber nicht vom gleichen Typ ist.
- </para>
- <para>
- Der Bequemlichkeit halber kann man auch <methodname>setStrict()</methodname> und
- <methodname>getStrict()</methodname> verwenden.
- </para>
- </sect3>
- <sect3 id="zend.validate.set.identical.configuration">
- <title>Konfiguration</title>
- <para>
- Wie alle anderen Prüfungen unterstützt <classname>Zend_Validate_Identical</classname>
- auch die Verwendung von Konfigurationseinstellungen als Eingabe Parameter. Das
- bedeutet das man den Prüfer mit einem <classname>Zend_Config</classname> Objekt
- konfigurieren kann.
- </para>
- <para>
- Aber das führt zu einem weiteren Fall den man berücksichtigen muss. Wenn man ein Array
- als Vergleichswert verwendet, dann sollte man dieses in einen
- '<property>token</property>' Schlüssel einhüllen wenn dieses nur ein Element enthält.
- </para>
- <programlisting language="php"><![CDATA[
- $valid = new Zend_Validate_Identical(array('token' => 123));
- if ($valid->isValid($input)) {
- // Der Wert scheint gültig zu sein
- } else {
- // Der Wert ist ungültig
- }
- ]]></programlisting>
- <para>
- Das oben stehende Beispiel prüft den Integerwert 123. Der Grund für diesen speziellen
- Fall ist, dass man den Token der verwendet werden soll, durch Angabe des
- '<property>token</property>' Schlüssels, konfigurieren kann.
- </para>
- <para>
- Wenn der eigene Vergleichswert nur ein Element enthält, und dieses Element
- '<property>token</property>' heißt dann muss man dieses, wie im oben stehenden Beispiel
- gezeigt, einhüllen.
- </para>
- <programlisting language="php"><![CDATA[
- $valid = new Zend_Validate_Identical(array('token' => array('token' => 123)));
- if ($valid->isValid($input)) {
- // Der Wert scheint gültig zu sein
- } else {
- // Der Wert ist ungültig
- }
- ]]></programlisting>
- </sect3>
- </sect2>
|