<?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&#160; 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&#160;; "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"&#160;;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>&#160;:
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    <emphasis><property>format</property></emphasis>&#160;: spécifie le format
                    de code postal qui sera utilisé pour la validation.
                </para>
            </listitem>

            <listitem>
                <para>
                    <emphasis><property>locale</property></emphasis>&#160;: spécifie la locale
                    à partir de laquelle le code postal sera récupéré.
                </para>
            </listitem>
        </itemizedlist>
    </sect3>
</sect2>
