<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect1 id="zend.filter.filter_chains">
    <title>Chaînes de filtrage</title>

    <para>
        Souvent, de multiples filtres doivent être appliqués à une valeur dans un ordre
        particulier. Par exemple, un formulaire d'authentification accepte un identifiant qui doit
        être en minuscule et composé uniquement de caractères alphabétiques.
        <classname>Zend_Filter</classname> fournit un moyen simple permettant de chaîner des
        filtres. Le code suivant illustre comment chaîner deux filtres pour l'identifiant
        soumis&#160;:
        <programlisting language="php"><![CDATA[
// Création d'une chaine de filtrage et ajout de filtres à celle-ci
$filtreChaine = new Zend_Filter();
$filtreChaine->addFilter(new Zend_Filter_Alpha())
             ->addFilter(new Zend_Filter_StringToLower());

// Filtrage de l'identifiant
$identifiant = $filtreChaine->filter($_POST['identifiant']);
]]></programlisting>
        Les filtres sont exécutés dans leur ordre d'ajout à
        <classname>Zend_Filter</classname>. Dans l'exemple ci-dessus, l'identifiant se voit d'abord
        retirer tout caractère non-alphabétique, les caractère majuscules éventuels sont ensuite
        convertis en minuscules.
    </para>

    <para>
        Tout objet implémentant <classname>Zend_Filter_Interface</classname> peut être utilisé
        comme chaîne de filtrage.
    </para>

    <sect2 id="zend.filter.filter_chains.order">
        <title>Changing filter chain order</title>

        <para>
            Since 1.10, the <classname>Zend_Filter</classname> chain also
            supports altering the chain by prepending or appending filters. For
            example, the next piece of code does exactly the same as the other
            username filter chain example:
        </para>

        <programlisting language="php"><![CDATA[
// Create a filter chain and add filters to the chain
$filterChain = new Zend_Filter();

// this filter will be appended to the filter chain
$filterChain->appendFilter(new Zend_Filter_StringToLower());

// this filter will be prepended at the beginning of the filter chain.
$filterChain->prependFilter(new Zend_Filter_Alpha());

// Filter the username
$username = $filterChain->filter($_POST['username']);
]]></programlisting>
    </sect2>
</sect1>