ここは以前の ethna.jp サイトを表示したものです。ここにあるドキュメントはバージョン2.6以降更新されません。
最新のドキュメントは 現在のethna.jp を閲覧してください。現ドキュメントが整備されるまでは、ここを閲覧してください。

フィルタプラグインの作成

ここでは、Ethna 向けの フィルタプラグインの作成方法を説明します。Ethna が持つフィルタチェイン機能については、こちらを参照して下さい。

書いた人mumumu2009-06-21新規作成

フィルタプラグインの実体

フィルタプラグインはEthnaのフィルタ機能を実行するものですので、中身は実際のフィルタと変わりません。但し、プラグインですので、クラス名とファイルの置き場所は、Ethnaのプラグインの規則に従う必要があります。

フィルタプラグインを作成する

Ethna 2.5.0 以前

Ethna 2.5.0 より以前のバージョンでは自動生成機能はありませんので、app/Plugin/Filter/ExecutionTime.php をコピーして手動で作成して下さい。

処理を記述する

以下のように、4つのメソッドが定義されていますので、任意の処理を記述してください。

<?php
// vim: foldmethod=marker
/**
 *  [APPID]_Plugin_Filter_Hoge
 *
 *  @author     your name <yourname@example.com>
 *  @license    http://www.opensource.org/licenses/bsd-license.php The BSD License
 *  @package    Ethna_Plugin
 *  @version    $Id$
 */

// {{{ [APPID]_Plugin_Filter_Hoge
/**
 *  Filter Plugin Class Hoge.
 *
 *  @author     yourname <yourname@example.com>
 *  @access     public
 *  @package    Ethna_Plugin 
 */
class [APPID]_Plugin_Filter_Hoge extends Ethna_Plugin_Filter
{
    function preFilter()
    {
    }

    function preActionFilter($action_name)
    {
    }

    function postActionFilter($action_name, $forward_name)
    {
    }

    function postFilter()
    {
    }
}
// }}}
?>

フィルタプラグインを登録する

フィルタプラグインを実際に使うには、作成して実装するだけでなく、コントローラーにフィルタチェインの一部として登録する必要があります。

フィルタプラグインを登録するには、[Appid]_Controller の $filter メンバに登録すれば、そのプラグインがフィルタチェインのひとつとして登録されます。

 var $filter = array(
+    'Ethna_Plugin_Filter_Hoge',
 );