1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
|
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect2 id="zend.validate.set.post_code">
<title>PostCode</title>
<para>
<classname>Zend_Validate_PostCode</classname> vous permet de déterminer si une valeur
donnée est un code postal valide. Les codes postaux siont spécifiques aux villes et dans
quelques cas spéciaux sont nommés des codes <acronym>ZIP</acronym>.
</para>
<para>
<classname>Zend_Validate_PostCode</classname> reconnait plus de 160 différents formats de
codes postaux. Pour sélectionner le format correct, il existe deux manières. Vous pouvez
soit utiliser une locale complète, soit paramétrer votre propre format manuellement.
</para>
<para>
Utiliser la locale est la méthode la plus commode puisque Zend Framework connait les
formats des codes postaux assoicés à chaque locale  cependant, vous devez utiliser
une locale complète (c'est-à-dire contenant aussi le spécificateur de région) dans ce cas.
Par exemple, la locale "fr" est une bien une locale mais ne peut pas être utilisée avec
<classname>Zend_Validate_PostCode</classname> puisqu'elle ne contient pas la
région ; "fr_FR" sera, cependant, une locale valide puisqu'elle spécifie une région
("FR", pour France).
</para>
<programlisting language="php"><![CDATA[
$validator = new Zend_Validate_PostCode('fr_FR');
]]></programlisting>
<para>
Quand vous ne paramétrez pas de locale vous-même, alors
<classname>Zend_Validate_PostCode</classname> utilisera la locale de l'application, ou, s'il
n'y en a pas, la locale retournée par <classname>Zend_Locale</classname>.
</para>
<programlisting language="php"><![CDATA[
// locale de l'application définie dans le bootstrap
$locale = new Zend_Locale('fr_FR');
Zend_Registry::set('Zend_Locale', $locale);
$validator = new Zend_Validate_PostCode();
]]></programlisting>
<para>
Vous pouvez changer la locale plus tard en appelant <methodname>setLocale()</methodname>.
Et bien sûr vous pouvez récupérer la locale courante avec
<methodname>getLocale()</methodname>.
</para>
<programlisting language="php"><![CDATA[
$validator = new Zend_Validate_PostCode('fr_FR');
$validator->setLocale('en_GB');
]]></programlisting>
<para>
Les formats de codes postaux sont simplement des chaînes d'expressions régulières. Quand le
format de code postal international, qui est utilisé en paramétrant la locale, ne correspond
pas à vos besoins, alors vous pouvez alors paramétrer manuellement un format en appelant
<methodname>setFormat()</methodname>.
</para>
<programlisting language="php"><![CDATA[
$validator = new Zend_Validate_PostCode('fr_FR');
$validator->setFormat('FR-\d{5}');
]]></programlisting>
<note>
<title>Conventions pour les formats personnalisés</title>
<para>
Lors de l'utilisation de formats personnalisés, vous devez omettre les balises de début
(<command>'/^'</command>) et de fin (<command>'$/'</command>). Elles sont ajoutés
automatiquement.
</para>
<para>
Vous devez faire attention au fait que les valeurs de code postal sont toujours
validées de manière stricte. Ce qui veut dire qu'ils doivent être écrits seuls sans
caractère additionnel qui ne serait pas couvert par le format.
</para>
</note>
<sect3 id="zend.validate.set.post_code.constructor">
<title>Options du constructeur</title>
<para>
Le plus basiquement possible, vous fournissez soit un objet
<classname>Zend_Locale</classname>, soit une chaîne représentant une locale complète
au constructeur de <classname>Zend_Validate_PostCode</classname>.
</para>
<programlisting language="php"><![CDATA[
$validator = new Zend_Validate_PostCode('fr_FR');
$validator = new Zend_Validate_PostCode($locale);
]]></programlisting>
<para>
De plus, vous pouve zfournir un tableau ou un objet <classname>Zend_Config</classname>
au constructeur. Quand vous faîtes ceci, vous devez inclure soit la clé "locale" ou
"format" ;celles-ci seront utilisées pour paramétrer les valeurs appropriées dans
l'objet validateur.
</para>
<programlisting language="php"><![CDATA[
$validator = new Zend_Validate_PostCode(array(
'locale' => 'fr_FR',
'format' => 'FR-\d+'
));
]]></programlisting>
</sect3>
<sect3 id="zend.validate.set.post_code.options">
<title>Options supportées par Zend_Validate_PostCode</title>
<para>
Les options suivantes sont supportées par
<classname>Zend_Validate_PostCode</classname> :
</para>
<itemizedlist>
<listitem>
<para>
<emphasis><property>format</property></emphasis> : spécifie le format
de code postal qui sera utilisé pour la validation.
</para>
</listitem>
<listitem>
<para>
<emphasis><property>locale</property></emphasis> : spécifie la locale
à partir de laquelle le code postal sera récupéré.
</para>
</listitem>
</itemizedlist>
</sect3>
</sect2>
|