Часто к одним и тем же данным должно быть применено несколько фильтров в определенном порядке. Например, форма аутентификации должна принимать имя пользователя, состояшее только из алфавитных символов в нижнем регистре. Zend_Filter
предоставляет простой метод, посредством которого составляется цепочка фильтров. Следующий код показывает, как создать цепочку из двух фильтров для имени пользователя.
<?php // Предоставляет возможность создания цепочек фильтров require_once 'Zend/Filter.php'; // Фильтры, нужные для примера require_once 'Zend/Filter/Alpha.php'; require_once 'Zend/Filter/StringToLower.php'; // Создание цепочки фильтров и добавление в нее фильтров $filterChain = new Zend_Filter(); $filterChain->addFilter(new Zend_Filter_Alpha()) ->addFilter(new Zend_Filter_StringToLower()); // Фильтрация имени пользователя $username = $filterChain->filter($_POST['username']);
Фильтры применяются в том же порядке, в котором они были добавлены в
Zend_Filter
. В примере выше из имени пользователя сначала удаляются все неалфавитные символы, затем все символы в верхнем регистре приводятся к нижнему.
Все объекты, реализующие интерфейс Zend_Filter_Interface
, могут использоваться в цепочке фильтров.