| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect2 id="zend.validate.set.stringlength">
- <title>StringLength</title>
- <para>
- Ce validateur vérifie la longueur d'une chaine de caractères.
- </para>
- <note>
- <title>Zend_Validate_StringLength ne supporte que les chaines</title>
- <para>
- Zend_Validate_StringLength ne fonctionnera pas avec les entiers, flottants, les dates ou
- encore les objets.
- </para>
- </note>
- <sect3 id="zend.validate.set.stringlength.options">
- <title>Options gérées par Zend_Validate_StringLength</title>
- <para>
- Les options suivantes sont reconnues par
- <classname>Zend_Validate_StringLength</classname>:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis><property>encoding</property></emphasis>: Définit l'encodage
- <constant>ICONV</constant> à utiliser avec la chaine.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><property>min</property></emphasis>: Définit le nombre de caractères
- minimum requis.
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis><property>max</property></emphasis>: Définit le nombre de caractères
- maximum requis.
- </para>
- </listitem>
- </itemizedlist>
- </sect3>
- <sect3 id="zend.validate.set.stringlength.basic">
- <title>Comportement par défaut de Zend_Validate_StringLength</title>
- <para>
- Par défaut, ce validateur vérifie qu'une valeur de chaine est bien entre <property>min</property> et
- <property>max</property> caractères. Pour <property>min</property>, la valeur par défaut est
- <emphasis>0</emphasis> et pour <property>max</property> c'est
- <emphasis><constant>NULL</constant></emphasis> ce qui signifie illimité.
- </para>
- <para>
- Ainsi par défaut, sans aucune option, ce validateur vérifie que la donnée traitée est bien une chaine.
- </para>
- </sect3>
- <sect3 id="zend.validate.set.stringlength.maximum">
- <title>Limiter sur la borne supérieure</title>
- <para>
- La borne supérieure se règle au moyen de l'option <property>max</property>.
- Ce doit être un entier.
- </para>
- <programlisting language="php"><![CDATA[
- $validator = new Zend_Validate_StringLength(array('max' => 6));
- $validator->isValid("Test"); // retourne true
- $validator->isValid("Testing"); // retourne false
- ]]></programlisting>
- <para>
- Il est possible de préciser cette option plus tard, au moyen de la méthode
- <methodname>setMax()</methodname>. <methodname>getMax()</methodname> existe aussi.
- </para>
- <programlisting language="php"><![CDATA[
- $validator = new Zend_Validate_StringLength();
- $validator->setMax(6);
- $validator->isValid("Test"); // retourne true
- $validator->isValid("Testing"); // retourne false
- ]]></programlisting>
- </sect3>
- <sect3 id="zend.validate.set.stringlength.minimum">
- <title>Limiter sur la borne inférieure</title>
- <para>
- La borne inférieure se règle au moyen de l'option <property>min</property>.
- Ce doit être un entier.
- </para>
- <programlisting language="php"><![CDATA[
- $validator = new Zend_Validate_StringLength(array('min' => 5));
- $validator->isValid("Test"); // retourne false
- $validator->isValid("Testing"); // retourne true
- ]]></programlisting>
- <para>
- Il est possible de préciser cette option plus tard, au moyen de la méthode
- <methodname>setMin()</methodname>. <methodname>getMin()</methodname> existe aussi.
- </para>
- <programlisting language="php"><![CDATA[
- $validator = new Zend_Validate_StringLength();
- $validator->setMin(5);
- $validator->isValid("Test"); // retourne false
- $validator->isValid("Testing"); // retourne true
- ]]></programlisting>
- </sect3>
- <sect3 id="zend.validate.set.stringlength.both">
- <title>Limiter via les deux bornes</title>
- <para>
- Quelques fois, il est nécessaire de s'assurer que la chaine comprenne bien un nombre
- de caractères entre deux bornes min et max. Par exemple depuis un champ de formulaire
- représentant un nom, vous voudriez que l'utilisateur ne puisse saisir plus de 30
- caractères mais au moins 3. Voyez l'exemple qui suit:
- </para>
- <programlisting language="php"><![CDATA[
- $validator = new Zend_Validate_StringLength(array('min' => 3, 'max' => 30));
- $validator->isValid("."); // retourne false
- $validator->isValid("Test"); // retourne true
- $validator->isValid("Testing"); // retourne true
- ]]></programlisting>
- <note>
- <title>Comportement illogique, borne inférieure supérieure à la borne supérieure</title>
- <para>
- Si vous tentez de préciser un min supérieur au max, ou inversement, une exception
- sera levée.
- </para>
- </note>
- </sect3>
- <sect3 id="zend.validate.set.stringlength.encoding">
- <title>Encodage des valeurs</title>
- <para>
- Les chaines se représentent toujours en considérant un encodage. Même si vous ne le précisez
- pas explicitement, <acronym>PHP</acronym> en utilise un. Si votre application utilise un
- encodage différent de celui de <acronym>PHP</acronym>, vous devrez alors le préciser.
- </para>
- <para>
- Vous pouvez passer votre propre encodage à l'initialisation grâce à l'option
- <property>encoding</property>, ou en utilisant la méthode <methodname>setEncoding()</methodname>
- . Nous supposons que votre installation utilise <acronym>ISO</acronym> ainsi que votre
- application. Dans ce cas, vous verrez le comportement suivant:
- </para>
- <programlisting language="php"><![CDATA[
- $validator = new Zend_Validate_StringLength(
- array('min' => 6)
- );
- $validator->isValid("Ärger"); // retourne false
- $validator->setEncoding("UTF-8");
- $validator->isValid("Ärger"); // retourne true
- $validator2 = new Zend_Validate_StringLength(
- array('min' => 6, 'encoding' => 'UTF-8')
- );
- $validator2->isValid("Ärger"); // retourne true
- ]]></programlisting>
- <para>
- Si votre installation et votre application utilisent des encodages différents, vous deviez
- toujours préciser l'encodage vous-même.
- </para>
- </sect3>
- </sect2>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|