Classes de filtre standards

Chaînes 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 chaîner des filtres. Le code suivant illustre comment chaîner deux filtres pour l'identifiant soumis :

  1. // Création d'une chaine de filtrage et ajout de filtres à celle-ci
  2. $filtreChaine = new Zend_Filter();
  3. $filtreChaine->addFilter(new Zend_Filter_Alpha())
  4.              ->addFilter(new Zend_Filter_StringToLower());
  5.  
  6. // Filtrage de l'identifiant
  7. $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.

Changing filter chain order

Since 1.10, the Zend_Filter 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:

  1. // Create a filter chain and add filters to the chain
  2. $filterChain = new Zend_Filter();
  3.  
  4. // this filter will be appended to the filter chain
  5. $filterChain->appendFilter(new Zend_Filter_StringToLower());
  6.  
  7. // this filter will be prepended at the beginning of the filter chain.
  8. $filterChain->prependFilter(new Zend_Filter_Alpha());
  9.  
  10. // Filter the username
  11. $username = $filterChain->filter($_POST['username']);

Classes de filtre standards