<?xml version="1.0" encoding="UTF-8"?>
<!-- Reviewed: no -->
<!-- EN-Revision: 15854 -->
<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:
-->
