2
0

Zend_Validate-Identical.xml 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect2 id="zend.validate.set.identical">
  5. <title>Identical</title>
  6. <para>
  7. <classname>Zend_Validate_Identical</classname> erlaubt es zu prüfen ob ein angegebener Wert
  8. mit einem angegebenen Vergleichswert identisch ist.
  9. </para>
  10. <sect3 id="zend.validate.set.identical.options">
  11. <title>Unterstützte Optionen für Zend_Validate_Identical</title>
  12. <para>
  13. Die folgenden Optionen werden für <classname>Zend_Validate_Identical</classname>
  14. unterstützt:
  15. </para>
  16. <itemizedlist>
  17. <listitem>
  18. <para>
  19. <emphasis><property>strict</property></emphasis>: Definiert ob die Prüfung
  20. strikt durchgeführt werden soll. Der Standardwert ist <constant>TRUE</constant>.
  21. </para>
  22. </listitem>
  23. <listitem>
  24. <para>
  25. <emphasis><property>token</property></emphasis>: Setzt den Token gegen den die
  26. Eingabe geprüft werden soll.
  27. </para>
  28. </listitem>
  29. </itemizedlist>
  30. </sect3>
  31. <sect3 id="zend.validate.set.identical.basic">
  32. <title>Grundsätzliche Verwendung</title>
  33. <para>
  34. Um zu prüfen ob zwei Werte identisch sind muss man den originalen Wert als
  35. Vergleichswert setzen. Siehe das folgende Beispiel welches zwei Strings vergleicht.
  36. </para>
  37. <programlisting language="php"><![CDATA[
  38. $valid = new Zend_Validate_Identical('original');
  39. if ($valid->isValid($value) {
  40. return true;
  41. }
  42. ]]></programlisting>
  43. <para>
  44. Die Prüfung wird nur dann <constant>TRUE</constant> zurückgeben wenn beide Werte 100%
  45. identisch sind. In unserem Beispiel wenn <varname>$value</varname> 'original' ist.
  46. </para>
  47. <para>
  48. Man kann den gewünschten Token auch im Nachhinein durch Verwendung der Methode
  49. <methodname>setToken()</methodname> setzen und mit <methodname>getToken()</methodname>
  50. den aktuell gesetzten Token erhalten.
  51. </para>
  52. </sect3>
  53. <sect3 id="zend.validate.set.identical.types">
  54. <title>Identische Objekte</title>
  55. <para>
  56. Natürlich kann <classname>Zend_Validate_Identical</classname> nicht nur Strings prüfen,
  57. sondern jeden Variablentyp wie Boolean, Integer, Float, Array oder sogar Objekte. Wie
  58. bereits notiert müssen Vergleichswert und Wert identisch sein.
  59. </para>
  60. <programlisting language="php"><![CDATA[
  61. $valid = new Zend_Validate_Identical(123);
  62. if ($valid->isValid($input)) {
  63. // Der Wert scheint gültig zu sein
  64. } else {
  65. // Der Wert ist ungültig
  66. }
  67. ]]></programlisting>
  68. <note>
  69. <title>Vergleich des Typs</title>
  70. <para>
  71. Man sollte darauf acht geben das der Typ einer Variable für die Prüfung verwendet
  72. wird. Das bedeutet das der String <emphasis>'3'</emphasis> nicht identisch ist mit
  73. dem Integerwert <emphasis>3</emphasis>. Wenn man eine nicht strikte Prüfung
  74. durchführen will muss man die <property>strict</property> Option setzen.
  75. </para>
  76. </note>
  77. </sect3>
  78. <sect3 id="zend.validate.set.identical.formelements">
  79. <title>Formular Elemente</title>
  80. <para>
  81. <classname>Zend_Validate_Identical</classname> unterstützt auch den Vergleich von
  82. Formularelementen. Das kann getan werden indem der Name des Elements als
  83. <property>token</property> verwendet wird. Siehe das folgende Beispiel:
  84. </para>
  85. <programlisting language="php"><![CDATA[
  86. $form->addElement('password', 'elementOne');
  87. $form->addElement('password', 'elementTwo', array(
  88. 'validators' => array(
  89. array('identical', false, array('token' => 'elementOne'))
  90. )
  91. ));
  92. ]]></programlisting>
  93. <para>
  94. Indem der Elementname vom ersten Element als <property>token</property> für das zweite
  95. Element verwendet wird, prüft der Prüfer ob das zweite Element gleich dem ersten Element
  96. ist. Im Falle das der Benutzer keine zwei identischen Werte eingegeben hat, erhält man
  97. einen Prüffehler.
  98. </para>
  99. </sect3>
  100. <sect3 id="zend.validate.set.identical.strict">
  101. <title>Strikte Prüfung</title>
  102. <para>
  103. Wie vorher erwähnt prüft <classname>Zend_Validate_Identical</classname> die Token
  104. strikt. Man kann dieses Verhalten ändern indem die <property>strict</property> Option
  105. verwendet wird. Der Standardwert für diese Eigenschaft ist <constant>TRUE</constant>.
  106. </para>
  107. <programlisting language="php"><![CDATA[
  108. $valid = new Zend_Validate_Identical(array('token' => 123, 'strict' => FALSE));
  109. $input = '123';
  110. if ($valid->isValid($input)) {
  111. // Die Eingabe scheint gültig zu sein
  112. } else {
  113. // Die Eingabe ist ungültig
  114. }
  115. ]]></programlisting>
  116. <para>
  117. Der Unterschied zum vorhergehenden Beispiel besteht darin dass die Prüfung in diesem
  118. Fall <constant>TRUE</constant> zurückgibt, selbst wenn man einen Integerwert mit einem
  119. String prüft solange der Inhalt identisch aber nicht vom gleichen Typ ist.
  120. </para>
  121. <para>
  122. Der Bequemlichkeit halber kann man auch <methodname>setStrict()</methodname> und
  123. <methodname>getStrict()</methodname> verwenden.
  124. </para>
  125. </sect3>
  126. <sect3 id="zend.validate.set.identical.configuration">
  127. <title>Konfiguration</title>
  128. <para>
  129. Wie alle anderen Prüfungen unterstützt <classname>Zend_Validate_Identical</classname>
  130. auch die Verwendung von Konfigurationseinstellungen als Eingabe Parameter. Das
  131. bedeutet das man den Prüfer mit einem <classname>Zend_Config</classname> Objekt
  132. konfigurieren kann.
  133. </para>
  134. <para>
  135. Aber das führt zu einem weiteren Fall den man berücksichtigen muss. Wenn man ein Array
  136. als Vergleichswert verwendet, dann sollte man dieses in einen
  137. '<property>token</property>' Schlüssel einhüllen wenn dieses nur ein Element enthält.
  138. </para>
  139. <programlisting language="php"><![CDATA[
  140. $valid = new Zend_Validate_Identical(array('token' => 123));
  141. if ($valid->isValid($input)) {
  142. // Der Wert scheint gültig zu sein
  143. } else {
  144. // Der Wert ist ungültig
  145. }
  146. ]]></programlisting>
  147. <para>
  148. Das oben stehende Beispiel prüft den Integerwert 123. Der Grund für diesen speziellen
  149. Fall ist, dass man den Token der verwendet werden soll, durch Angabe des
  150. '<property>token</property>' Schlüssels, konfigurieren kann.
  151. </para>
  152. <para>
  153. Wenn der eigene Vergleichswert nur ein Element enthält, und dieses Element
  154. '<property>token</property>' heißt dann muss man dieses, wie im oben stehenden Beispiel
  155. gezeigt, einhüllen.
  156. </para>
  157. <programlisting language="php"><![CDATA[
  158. $valid = new Zend_Validate_Identical(array('token' => array('token' => 123)));
  159. if ($valid->isValid($input)) {
  160. // Der Wert scheint gültig zu sein
  161. } else {
  162. // Der Wert ist ungültig
  163. }
  164. ]]></programlisting>
  165. </sect3>
  166. </sect2>