Programmer's Reference Guide

Chaînes de filtrage

Écriture de filtres

Zend_Filter fournit un ensemble de filtres usuels. Cependant, les développeurs auront souvent besoin d'écrire des filtres personnalisés pour leurs besoins propres. L'écriture de filtre personnalisés est rendue plus facile via l'implémentation de Zend_Filter_Interface.

Zend_Filter_Interface définit une méthode unique, filter(), qui peut être implémentée dans les classes créées. Un objet qui implémente cette interface peut être ajouté à une chaîne de filtrage via Zend_Filter::addFilter().

L'exemple suivant démontre comment écrire un filtre personnalisé :

  1. class MonFiltre implements Zend_Filter_Interface
  2. {
  3.     public function filter($valeur)
  4.     {
  5.         // application de transformations sur $valeur
  6.         // pour parvenir à $valeurFiltree
  7.  
  8.         return $valeurFiltree;
  9.     }
  10. }

Pour ajouter une instance du filtre défini ci-dessus à une chaîne de filtrage :

  1. $filtreChaine = new Zend_Filter();
  2. $filtreChaine->addFilter(new MonFiltre());


Chaînes de filtrage

Comments

/**
* EmailMaskFilter
* A simple custom filter that will hide a part of the email
* letting user to see only the first letter and the domain
* the rest part uf the email is filled with wildcards
* ex: t***@gmail.com
*/
class EmailMaskFilter implements Zend_Filter_Interface
{
public function filter($value)
{
$mask = str_pad('', strpos($value, '@') - 1, '*');
$valueFiltered = substr_replace($value, $mask, 1, strlen($mask));
return $valueFiltered;
}
}
Where should I put my filter files to make ZF load them automatically?
This documentation is too pour!!!

The question of DoubleG is totally appropriate! How can you think to illustate how to write a custom filter without even tell WHERE to put it???

This is simple crazy.
autoloaderNamespaces[]= "CustomLibrary"

then you can call the filter something like
$usernameElement= new Zend_Form_Element_Text('username');
$usernameElement->addFilter(new CustomLibrary_Filter_MyFilter)
http://www.zendcasts.com/writing-custom-zend-filters-with-htmlpurifier/2011/06/

+ Add A Comment

Please do not report issues via comments; use the ZF Issue Tracker.

If you have a JIRA/Crowd account, we suggest you login first before commenting.

  • BBCode is allowed in the comment markup

  • Select a Version

    Languages Available

    Components

    Search the Manual