A menudo deben aplicarse varios filtros a un valor en un orden particular. Por ejemplo, un
formulario de acceso acepta un nombre de usuario que debe contener solo caracteres
alfabéticos en minúscula. Zend_Filter proporciona un método
sencillo mediante el cual los filtros pueden encadenarse. El siguiente código ilustra cómo
encadenar dos filtros para el nombre de usuario enviado:
// Create a filter chain and add filters to the chain
$filterChain = new Zend_Filter();
$filterChain->addFilter(new Zend_Filter_Alpha())
->addFilter(new Zend_Filter_StringToLower());
// Filter the username
$username = $filterChain->filter($_POST['username']);
Los filtros se ejecutan en el orden en que se añadieron a Zend_Filter. En
el ejemplo anterior, primero se eliminan del nombre de usuario los caracteres no alfabéticos,
y luego se convierten a minúscula los caracteres en mayúscula.
Cualquier objeto que implemente Zend_Filter_Interface puede usarse en una
cadena de filtros.
Desde la versión 1.10, la cadena de Zend_Filter también
admite alterar la cadena anteponiendo o añadiendo filtros. Por
ejemplo, el siguiente fragmento de código hace exactamente lo mismo que el otro
ejemplo de cadena de filtros del nombre de usuario:
// 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']);