Zend_Validate-StringLength.xml 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect2 id="zend.validate.set.stringlength">
  5. <title>StringLength</title>
  6. <para>
  7. Ce validateur vérifie la longueur d'une chaine de caractères.
  8. </para>
  9. <note>
  10. <title>Zend_Validate_StringLength ne supporte que les chaines</title>
  11. <para>
  12. Zend_Validate_StringLength ne fonctionnera pas avec les entiers, flottants, les dates ou
  13. encore les objets.
  14. </para>
  15. </note>
  16. <sect3 id="zend.validate.set.stringlength.options">
  17. <title>Options gérées par Zend_Validate_StringLength</title>
  18. <para>
  19. Les options suivantes sont reconnues par
  20. <classname>Zend_Validate_StringLength</classname>:
  21. </para>
  22. <itemizedlist>
  23. <listitem>
  24. <para>
  25. <emphasis><property>encoding</property></emphasis>: Définit l'encodage
  26. <constant>ICONV</constant> à utiliser avec la chaine.
  27. </para>
  28. </listitem>
  29. <listitem>
  30. <para>
  31. <emphasis><property>min</property></emphasis>: Définit le nombre de caractères
  32. minimum requis.
  33. </para>
  34. </listitem>
  35. <listitem>
  36. <para>
  37. <emphasis><property>max</property></emphasis>: Définit le nombre de caractères
  38. maximum requis.
  39. </para>
  40. </listitem>
  41. </itemizedlist>
  42. </sect3>
  43. <sect3 id="zend.validate.set.stringlength.basic">
  44. <title>Comportement par défaut de Zend_Validate_StringLength</title>
  45. <para>
  46. Par défaut, ce validateur vérifie qu'une valeur de chaine est bien entre <property>min</property> et
  47. <property>max</property> caractères. Pour <property>min</property>, la valeur par défaut est
  48. <emphasis>0</emphasis> et pour <property>max</property> c'est
  49. <emphasis><constant>NULL</constant></emphasis> ce qui signifie illimité.
  50. </para>
  51. <para>
  52. Ainsi par défaut, sans aucune option, ce validateur vérifie que la donnée traitée est bien une chaine.
  53. </para>
  54. </sect3>
  55. <sect3 id="zend.validate.set.stringlength.maximum">
  56. <title>Limiter sur la borne supérieure</title>
  57. <para>
  58. La borne supérieure se règle au moyen de l'option <property>max</property>.
  59. Ce doit être un entier.
  60. </para>
  61. <programlisting language="php"><![CDATA[
  62. $validator = new Zend_Validate_StringLength(array('max' => 6));
  63. $validator->isValid("Test"); // retourne true
  64. $validator->isValid("Testing"); // retourne false
  65. ]]></programlisting>
  66. <para>
  67. Il est possible de préciser cette option plus tard, au moyen de la méthode
  68. <methodname>setMax()</methodname>. <methodname>getMax()</methodname> existe aussi.
  69. </para>
  70. <programlisting language="php"><![CDATA[
  71. $validator = new Zend_Validate_StringLength();
  72. $validator->setMax(6);
  73. $validator->isValid("Test"); // retourne true
  74. $validator->isValid("Testing"); // retourne false
  75. ]]></programlisting>
  76. </sect3>
  77. <sect3 id="zend.validate.set.stringlength.minimum">
  78. <title>Limiter sur la borne inférieure</title>
  79. <para>
  80. La borne inférieure se règle au moyen de l'option <property>min</property>.
  81. Ce doit être un entier.
  82. </para>
  83. <programlisting language="php"><![CDATA[
  84. $validator = new Zend_Validate_StringLength(array('min' => 5));
  85. $validator->isValid("Test"); // retourne false
  86. $validator->isValid("Testing"); // retourne true
  87. ]]></programlisting>
  88. <para>
  89. Il est possible de préciser cette option plus tard, au moyen de la méthode
  90. <methodname>setMin()</methodname>. <methodname>getMin()</methodname> existe aussi.
  91. </para>
  92. <programlisting language="php"><![CDATA[
  93. $validator = new Zend_Validate_StringLength();
  94. $validator->setMin(5);
  95. $validator->isValid("Test"); // retourne false
  96. $validator->isValid("Testing"); // retourne true
  97. ]]></programlisting>
  98. </sect3>
  99. <sect3 id="zend.validate.set.stringlength.both">
  100. <title>Limiter via les deux bornes</title>
  101. <para>
  102. Quelques fois, il est nécessaire de s'assurer que la chaine comprenne bien un nombre
  103. de caractères entre deux bornes min et max. Par exemple depuis un champ de formulaire
  104. représentant un nom, vous voudriez que l'utilisateur ne puisse saisir plus de 30
  105. caractères mais au moins 3. Voyez l'exemple qui suit:
  106. </para>
  107. <programlisting language="php"><![CDATA[
  108. $validator = new Zend_Validate_StringLength(array('min' => 3, 'max' => 30));
  109. $validator->isValid("."); // retourne false
  110. $validator->isValid("Test"); // retourne true
  111. $validator->isValid("Testing"); // retourne true
  112. ]]></programlisting>
  113. <note>
  114. <title>Comportement illogique, borne inférieure supérieure à la borne supérieure</title>
  115. <para>
  116. Si vous tentez de préciser un min supérieur au max, ou inversement, une exception
  117. sera levée.
  118. </para>
  119. </note>
  120. </sect3>
  121. <sect3 id="zend.validate.set.stringlength.encoding">
  122. <title>Encodage des valeurs</title>
  123. <para>
  124. Les chaines se représentent toujours en considérant un encodage. Même si vous ne le précisez
  125. pas explicitement, <acronym>PHP</acronym> en utilise un. Si votre application utilise un
  126. encodage différent de celui de <acronym>PHP</acronym>, vous devrez alors le préciser.
  127. </para>
  128. <para>
  129. Vous pouvez passer votre propre encodage à l'initialisation grâce à l'option
  130. <property>encoding</property>, ou en utilisant la méthode <methodname>setEncoding()</methodname>
  131. . Nous supposons que votre installation utilise <acronym>ISO</acronym> ainsi que votre
  132. application. Dans ce cas, vous verrez le comportement suivant:
  133. </para>
  134. <programlisting language="php"><![CDATA[
  135. $validator = new Zend_Validate_StringLength(
  136. array('min' => 6)
  137. );
  138. $validator->isValid("Ärger"); // retourne false
  139. $validator->setEncoding("UTF-8");
  140. $validator->isValid("Ärger"); // retourne true
  141. $validator2 = new Zend_Validate_StringLength(
  142. array('min' => 6, 'encoding' => 'UTF-8')
  143. );
  144. $validator2->isValid("Ärger"); // retourne true
  145. ]]></programlisting>
  146. <para>
  147. Si votre installation et votre application utilisent des encodages différents, vous deviez
  148. toujours préciser l'encodage vous-même.
  149. </para>
  150. </sect3>
  151. </sect2>
  152. <!--
  153. vim:se ts=4 sw=4 et:
  154. -->