<?xml version="1.0" encoding="UTF-8"?>
<!-- Reviewed: no -->
<sect1 id="zend.filter.filter_chains">

    <title>Цепочки фильтров</title>

    <para>
        Довольно часто встречается ситуация, когда к одним и тем же данным нужно
        применить несколько фильтров в определенном порядке.
        Например, форма аутентификации должна принимать имя пользователя,
        состояшее только из алфавитных символов в нижнем регистре.
        <classname>Zend_Filter</classname> предоставляет простой метод, через который
        составляется цепочка из фильтров. Следующий код демонстрирует
        создание цепочки из двух фильтров для имени пользователя:
        
        <programlisting language="php"><![CDATA[
// Создание цепочки фильтров и добавление в нее фильтров
$filterChain = new Zend_Filter();
$filterChain->addFilter(new Zend_Filter_Alpha())
            ->addFilter(new Zend_Filter_StringToLower());

// Фильтрация имени пользователя
$username = $filterChain->filter($_POST['username']);
]]></programlisting>

        Фильтры применяются в том же порядке, в котором они были добавлены в
        <classname>Zend_Filter</classname>. В примере выше из имени пользователя
        сначала удаляются все неалфавитные символы, затем все символы
        приводятся к нижнему регистру.

    </para>

    <para>
        Все объекты, реализующие интерфейс <classname>Zend_Filter_Interface</classname>,
        могут использоваться в цепочке фильтров.
    </para>

</sect1>
<!--
vim:se ts=4 sw=4 et:
-->
