13.2. Chaines de filtrage

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. Zend_Filter fournit un moyen simple permettant de chainer des filtres. Le code suivant illustre comment chainer deux filtres pour l'identifiant soumis :

<?php
// Ajout des fonctionnalités de chainage de filtres
require_once 'Zend/Filter.php';

// Filtres nécessaires à l'exemple
require_once 'Zend/Filter/Alpha.php';
require_once 'Zend/Filter/StringToLower.php';

// 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']);

Les filtres sont exécutés dans leur ordre d'ajout à Zend_Filter. 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.

Tout objet implémentant Zend_Filter_Interface peut être utilisé comme chaîne de filtrage.