2
0

Zend_Validate-InArray.xml 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 18822 -->
  3. <!-- Reviewed: no -->
  4. <sect2 id="zend.validate.set.in_array">
  5. <title>InArray</title>
  6. <para>
  7. <classname>Zend_Validate_InArray</classname> vous permet de valider qu'une entrée est bien présente
  8. dans un tableau. Ceci fonctionne aussi avec des tableaux multidimensionnels.
  9. </para>
  10. <sect3 id="zend.validate.set.in_array.basic">
  11. <title>Validation tableau simple</title>
  12. <para>
  13. Passez simplement un tableau dans lequel rechercher une valeur:
  14. </para>
  15. <programlisting language="php"><![CDATA[
  16. $validator = new Zend_Validate_InArray(array('key' => 'value',
  17. 'otherkey' => 'othervalue'));
  18. if ($validator->isValid('value')) {
  19. // value trouvée
  20. } else {
  21. // value non trouvée
  22. }
  23. ]]></programlisting>
  24. <para>
  25. C'est le comportement exact de la fonction PHP <methodname>in_array()</methodname>.
  26. </para>
  27. <note>
  28. <para>
  29. Par défaut la validation est non stricte et ne valide pas les multiples dimensions.
  30. </para>
  31. </note>
  32. <para>
  33. Bien sûr vous pouvez fournir le tableau à valider plus tard en utilisant la méthode
  34. <methodname>setHaystack()</methodname>. La méthode
  35. <methodname>getHaystack()</methodname> retourne le tableau actuellement fourni.
  36. </para>
  37. <programlisting language="php"><![CDATA[
  38. $validator = new Zend_Validate_InArray();
  39. $validator->setHaystack(array('key' => 'value', 'otherkey' => 'othervalue'));
  40. if ($validator->isValid('value')) {
  41. // valeur trouvée
  42. } else {
  43. // valeur non trouvée
  44. }
  45. ]]></programlisting>
  46. </sect3>
  47. <sect3 id="zend.validate.set.in_array.strict">
  48. <title>Validation tableau stricte</title>
  49. <para>
  50. Il est possible d'effectuer une validation stricte des données dans le tableau. Par défaut, il n'y aura aucune
  51. différence entre l'entier <emphasis>0</emphasis> et la chaine <emphasis>"0"</emphasis>. La validation stricte
  52. fera cette différence.
  53. </para>
  54. <para>
  55. Pour spécifier une validation stricte à l'instanciation de l'objet, agissez comme suit&#160;:
  56. </para>
  57. <programlisting language="php"><![CDATA[
  58. $validator = new Zend_Validate_InArray(
  59. array(
  60. 'haystack' => array('key' => 'value', 'otherkey' => 'othervalue'),
  61. 'strict' => true
  62. )
  63. );
  64. if ($validator->isValid('value')) {
  65. // valeur trouvée
  66. } else {
  67. // valeur non trouvée
  68. }
  69. ]]></programlisting>
  70. <para>
  71. La clé <emphasis>haystack</emphasis> contient le tableau dans lequel valider. En mettant la clé
  72. <emphasis>strict</emphasis> à <constant>TRUE</constant>, la validation sera stricte (valeur et type).
  73. </para>
  74. <para>
  75. Bien sûr vous pouvez la méthode <methodname>setStrict()</methodname> pour changer ce
  76. réglage et la méthode <methodname>getStrict()</methodname> vous retournera le réglage
  77. en cours.
  78. </para>
  79. <note>
  80. <para>
  81. Notez que par défaut, <emphasis>strict</emphasis> a la valeur
  82. <constant>FALSE</constant>.
  83. </para>
  84. </note>
  85. </sect3>
  86. <sect3 id="zend.validate.set.in_array.recursive">
  87. <title>Validation de tableaux récursifs</title>
  88. <para>
  89. En plus de la validation type <acronym>PHP</acronym> <methodname>in_array()</methodname>, ce validateur peut
  90. aussi être utilisé pour valider des tableaux à plusieurs dimensions.
  91. </para>
  92. <para>
  93. Pour cela, utilisez l'option <emphasis>recursive</emphasis>.
  94. </para>
  95. <programlisting language="php"><![CDATA[
  96. $validator = new Zend_Validate_InArray(
  97. array(
  98. 'haystack' => array(
  99. 'firstDimension' => array('key' => 'value',
  100. 'otherkey' => 'othervalue'),
  101. 'secondDimension' => array('some' => 'real',
  102. 'different' => 'key')),
  103. 'recursive' => true
  104. )
  105. );
  106. if ($validator->isValid('value')) {
  107. // value trouvée
  108. } else {
  109. // value non trouvée
  110. }
  111. ]]></programlisting>
  112. <para>
  113. Votre tableau sera parcouru récursivement à la recherche de votre valeur. De plus
  114. vous pouvez utiliser la méthode <methodname>setRecursive()</methodname> pour
  115. paramétrer cette option plus tard et la méthode
  116. <methodname>getRecursive()</methodname> pour la retrouver.
  117. </para>
  118. <programlisting language="php"><![CDATA[
  119. $validator = new Zend_Validate_InArray(
  120. array(
  121. 'firstDimension' => array('key' => 'value',
  122. 'otherkey' => 'othervalue'),
  123. 'secondDimension' => array('some' => 'real',
  124. 'different' => 'key')
  125. )
  126. );
  127. $validator->setRecursive(true);
  128. if ($validator->isValid('value')) {
  129. // valeur trouvée
  130. } else {
  131. // valeur non trouvée
  132. }
  133. ]]></programlisting>
  134. <note>
  135. <title>Réglage par défaut pour la récursivité</title>
  136. <para>
  137. Par défaut, la récursivité n'est pas activée.
  138. </para>
  139. </note>
  140. <note>
  141. <title>Options pour la "haystack"</title>
  142. <para>
  143. Lorsque vous utilisez les clés <property>haystack</property>,
  144. <property>strict</property> ou <property>recursive</property> à l'intérieur
  145. de votre pile, vous devez alors envelopper la clé <property>haystack</property>.
  146. </para>
  147. </note>
  148. </sect3>
  149. </sect2>