Filter Chains - Zend_Filter

Filter Chains

Often multiple filters should be applied to some value in a particular order. For example, a login form accepts a username that should be only lowercase, alphabetic characters. Zend_Filter provides a simple method by which filters may be chained together. The following code illustrates how to chain together two filters for the submitted username:

  1. // Create a filter chain and add filters to the chain
  2. $filterChain = new Zend_Filter();
  3. $filterChain->addFilter(new Zend_Filter_Alpha())
  4.             ->addFilter(new Zend_Filter_StringToLower());
  6. // Filter the username
  7. $username = $filterChain->filter($_POST['username']);

Filters are run in the order they were added to Zend_Filter. In the above example, the username is first removed of any non-alphabetic characters, and then any uppercase characters are converted to lowercase.

Any object that implements Zend_Filter_Interface may be used in a filter chain.

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();
  4. // this filter will be appended to the filter chain
  5. $filterChain->appendFilter(new Zend_Filter_StringToLower());
  7. // this filter will be prepended at the beginning of the filter chain.
  8. $filterChain->prependFilter(new Zend_Filter_Alpha());
  10. // Filter the username
  11. $username = $filterChain->filter($_POST['username']);


© 2006-2018 by Zend, a Rogue Wave Company. Made with by awesome contributors.

This website is built using zend-expressive and it runs on PHP 7.