<?xml version="1.0" encoding="UTF-8"?>
<!-- Reviewed: no -->
<!-- EN-Revision: 24249 -->
<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> で定義しているメソッドは
        <methodname>filter()</methodname> ひとつだけです。これを皆さんのクラスで実装します。
        このインターフェイスを実装したクラスは、
        <classname>Zend_Filter::addFilter()</classname> でフィルタチェインに追加できます。
    </para>

    <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>

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