2
0

Zend_Validate-InArray.xml 6.9 KB

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