ドキュメント
リリースカレンダー
リンク
SourceForge.jp SourceForge.JPへ
php.net PHP公式サイトへ
TOP  >  ドキュメント  >  構成  >  filters.xml

filters.xml

 filters.xmlは、プロジェクト/個別アプリケーションで使用できるフィルタを設定します。 フィルタは、アクションの前後とビュー(テンプレート表示)の前後のイベントとして定義し、 共通処理として挿入することができます。

・アクション前フィルタ (preAction)
・アクション後フィルタ (postAction)
・ビュー表示前フィルタ (preRender)
・ビュー表示後フィルタ (postRender)

3.3.4.1 インストール初期設定

<?xml version="1.0" encoding="UTF-8" ?>
<syl-filters xmlns="http://syl.jp/schema"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:schemaLocation="http://syl.jp/schema syl-filters.xsd">
</syl-filters>

※ インストール初期状態ではフィルタは設定されていません。

3.3.4.2 タグ詳細

タグ名 親タグ名 属性 必須 説明
syl-filters - - - filters.xmlのTOPレベルノード

タグ名 親タグ名 属性 必須 説明
filter syl-filters - - pathで指定されたアクションに対して実行するフィルタを指定するタグ。
name フィルタ名。コンテナ内で一意な名前を指定する。
path - 実行されるアクションファイルをアクションディレクトリルートからのパスを指定。正規表現指定可能。デフォルトは「(.*)」、つまり全体に適用。
file フィルタのファイル名
class フィルタクラス名
enable - フィルタを使用するフラグ
true … 使用する(デフォルト)
false … 使用しない

タグ名 親タグ名 属性 必須 説明
preAction filter - - アクション処理前に実行する処理を指定するタグ。
name   メソッド名。デフォルトは「preAction」

タグ名 親タグ名 属性 必須 説明
postAction filter - - アクション処理後に実行する処理を指定するタグ。
name   メソッド名。デフォルトは「postAction」

タグ名 親タグ名 属性 必須 説明
preRender filter - - ビュー処理前に実行する処理を指定するタグ。
name   メソッド名。デフォルトは「preRender」

タグ名 親タグ名 属性 必須 説明
postRender filter - - ビュー処理後に実行する処理を指定するタグ。
name   メソッド名。デフォルトは「postRender」

タグ名 親タグ名 属性 必須 説明
arg preAction
postAction
preRender
postRender
- - preAction、postAction、preRender、postRenderの各ノードに対する引数を指定するタグ。
type   テキスト値を解釈するタイプ。
component … コンテナ内のコンポーネント名
constant … 定数名
value … 指定値(デフォルト)
reference   取得する値を参照で取得するかフラグ。
true … 参照渡しで取得する
false … 値渡しで取得する(デフォルト)
※ただし、PHP5ではコンポーネントの取得は全て参照となる。
(値) type属性に対応した値を指定する。

3.3.4.3 フィルタ例

 例として、入力パラメータに strtoupper 関数を一括して適用する設定と、 アクション実行後のアクションパラメータに htmlspecialchars 関数を一括して適用するフィルタの設定を示します。

<?xml version="1.0" encoding="UTF-8" ?>

<syl-filters xmlns="http://syl.jp/schema"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:schemaLocation="http://syl.jp/schema syl-filters.xsd">

<filter name="convert"
        path="(.+)\.php"
        class="SyL_FilterFunction"
        file="Core/Filter/SyL_FilterFunction.php"
        enable="false">

  <preAction name="preAction">
    <arg type="component" reference="true">request</arg>
    <arg>strtoupper</arg>
  </preAction>

  <postAction name="postAction">
    <arg type="component" reference="true">datamanager</arg>
    <arg>htmlspecialchars</arg>
  </postAction>
</filter>

</syl-filters>