14.3. Цепочки фильтров

Часто к одним и тем же данным должно быть применено несколько фильтров в определенном порядке. Например, форма аутентификации должна принимать имя пользователя, состояшее только из алфавитных символов в нижнем регистре. 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, могут использоваться в цепочке фильтров.

    Поддержать сайт на родительском проекте КГБ