Zend_Validate-Identical.xml 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 18791 -->
  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.basic">
  11. <title>Grundsätzliche Verwendung</title>
  12. <para>
  13. Um zu prüfen ob zwei Werte identisch sind muss man den originalen Wert als
  14. Vergleichswert setzen. Siehe das folgende Beispiel welches zwei Strings vergleicht.
  15. </para>
  16. <programlisting language="php"><![CDATA[
  17. $valid = new Zend_Validate_Identical('original');
  18. if ($valid->isValid($value) {
  19. return true;
  20. }
  21. ]]></programlisting>
  22. <para>
  23. Die Prüfung wird nur dann <constant>TRUE</constant> zurückgeben wenn beide Werte 100%
  24. identisch sind. In unserem Beispiel wenn <varname>$value</varname> 'original' ist.
  25. </para>
  26. <para>
  27. Man kann den gewünschten Token auch im Nachhinein durch Verwendung der Methode
  28. <methodname>setToken()</methodname> setzen und mit <methodname>getToken()</methodname>
  29. den aktuell gesetzten Token erhalten.
  30. </para>
  31. </sect3>
  32. <sect3 id="zend.validate.set.identical.types">
  33. <title>Identische Objekte</title>
  34. <para>
  35. Natürlich kann <classname>Zend_Validate_Identical</classname> nicht nur Strings prüfen,
  36. sondern jeden Variablentyp wie Boolean, Integer, Float, Array oder sogar Objekte. Wie
  37. bereits notiert müssen Vergleichswert und Wert identisch sein.
  38. </para>
  39. <programlisting language="php"><![CDATA[
  40. $valid = new Zend_Validate_Identical(123);
  41. if ($valid->isValid($input)) {
  42. // Der Wert scheint gültig zu sein
  43. } else {
  44. // Der Wert ist ungültig
  45. }
  46. ]]></programlisting>
  47. <note>
  48. <title>Vergleich des Typs</title>
  49. <para>
  50. Man sollte darauf acht geben das der Typ einer Variable für die Prüfung verwendet
  51. wird. Das bedeutet das der String <emphasis>'3'</emphasis> nicht identisch ist mit
  52. dem Integerwert <emphasis>3</emphasis>.
  53. </para>
  54. <para>
  55. Das ist auch der Fall für Form Elemente. Sie sind Objekte oder Arrays. Deshalb kann
  56. man nicht einfach ein Textfeld welches ein Passwort enthält mit einem textuellen
  57. Passwort aus einer anderen Quelle vergleichen. Das Element selbst ist als Array
  58. angegeben welches auch zusätzliche Informationen enthält.
  59. </para>
  60. </note>
  61. </sect3>
  62. <sect3 id="zend.validate.set.identical.configuration">
  63. <title>Konfiguration</title>
  64. <para>
  65. Wie alle anderen Prüfungen unterstützt <classname>Zend_Validate_Identical</classname>
  66. auch die Verwendung von Konfigurationseinstellungen als Eingabe Parameter. Das
  67. bedeutet das man den Prüfer mit einem <classname>Zend_Config</classname> Objekt
  68. konfigurieren kann.
  69. </para>
  70. <para>
  71. Aber das führt zu einem weiteren Fall den man berücksichtigen muss. Wenn man ein Array
  72. als Vergleichswert verwendet, dann sollte man dieses in einen
  73. <property>'token'</property> Schlüssel einhüllen wenn dieses nur ein Element enthält.
  74. </para>
  75. <programlisting language="php"><![CDATA[
  76. $valid = new Zend_Validate_Identical(array('token' => 123));
  77. if ($valid->isValid($input)) {
  78. // Der Wert scheint gültig zu sein
  79. } else {
  80. // Der Wert ist ungültig
  81. }
  82. ]]></programlisting>
  83. <para>
  84. Das oben stehende Beispiel prüft den Integerwert 123. Der Grund für diesen speziellen
  85. Fall ist, dass man den Token der verwendet werden soll, durch Angabe des
  86. <property>'token'</property> Schlüssels, konfigurieren kann.
  87. </para>
  88. <para>
  89. Wenn der eigene Vergleichswert nur ein Element enthält, und dieses Element
  90. <property>'token'</property> heißt dann muss man dieses, wie im oben stehenden Beispiel
  91. gezeigt, einhüllen.
  92. </para>
  93. <programlisting language="php"><![CDATA[
  94. $valid = new Zend_Validate_Identical(array('token' => array('token' => 123)));
  95. if ($valid->isValid($input)) {
  96. // Der Wert scheint gültig zu sein
  97. } else {
  98. // Der Wert ist ungültig
  99. }
  100. ]]></programlisting>
  101. </sect3>
  102. </sect2>
  103. <!--
  104. vim:se ts=4 sw=4 et:
  105. -->