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

    <title>Написание фильтров</title>

    <para>
        <classname>Zend_Filter</classname> предоставляет набор наиболее часто
        используемых фильтров, но в некоторых случаях может потребоваться
        написание своих фильтров. Эта задача облегчается
        реализацией интерфейса <classname>Zend_Filter_Interface</classname>.
    </para>

    <para>
        <classname>Zend_Filter_Interface</classname> определяет единственный метод
        <code>filter()</code>, который должен быть реализован классом фильтра.
        Объект класса, реализующего данный интерфейс, может быть добавлен в
        цепочку фильтров через метод <code>Zend_Filter::addFilter()</code>.
    </para>

    <para>
        Следующий пример демонстрирует, как можно создавать свои фильтры:

        <programlisting language="php"><![CDATA[
class MyFilter implements Zend_Filter_Interface
{
    public function filter($value)
    {
        // Выполнение преобразований над $value,
        // результатом которых является $valueFiltered

        return $valueFiltered;
    }
}
]]></programlisting>

    </para>

    <para>
        Добавление экземпляра этого фильтра в цепочку фильтров:

        <programlisting language="php"><![CDATA[
$filterChain = new Zend_Filter();
$filterChain->addFilter(new MyFilter());
]]></programlisting>

    </para>

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