Home > 全般 > カスタムフィルタの作成

カスタムフィルタの作成

intro
Zend_Filter_Interfaceを拡張して、配列により値を置き換えるフィルタを作成します。

1.カスタムフィルタの作成
以下のようにlibrary/My/Filter/ArrayValue.phpファイルを作成します。

<?php
require_once 'Zend/Filter/Interface.php';
 
class My_Filter_ArrayValue implements Zend_Filter_Interface
{
    protected $_list = array();
 
    public function __construct($list = array())
    {
        $this->_list = $list;
    }
 
    public function filter($value)
    {
        if (isset($this->_list[$value]))
        {
            return $this->_list[$value];
        }
        return $value;
    }
}
2.コントローラの作成
以下のようにapplication/controllers/FilterController.phpファイルを作成します。

<?php
require_once 'Zend/Filter/Interface.php';
 
class My_Filter_ArrayValue implements Zend_Filter_Interface
{
    protected $_list = array();
 
    public function __construct($list = array())
    {
        $this->_list = $list;
    }
 
    public function filter($value)
    {
        if (is_array($value))
        {
            foreach($value as &$element)
            {
                $element = $this->filter($element);
            }
        }
        else if (isset($this->_list[$value]))
        {
            return $this->_list[$value];
        }
        return $value;
    }
}
3.ビューの作成
以下のようにapplication/views/script/filter/index.phtmlファイルを作成します。

 
<ul>
<?php foreach($this->values as $key => $value) : ?>
<li><?= $this->of->$key ?></li>
 
<?php endforeach; ?>
</ul>
 
3.実行結果
ビューには以下のように出力されます。

    * ONE!
    * MyTableColumn
    * this is <b>tag</b>
    * Second

履歴
日付 内容
2008/4/25 公開
2008/4/27 配列のフィルタに対応しました。

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://www.oplabo.jp/article/33/trackback
Listed below are links to weblogs that reference
カスタムフィルタの作成 from Open Programming Laboratory

Home > 全般 > カスタムフィルタの作成

English
Search
Feeds

Return to page top