filters.xmlは、プロジェクト/個別アプリケーションで使用できるフィルタを設定します。 フィルタは、アクションの前後とビュー(テンプレート表示)の前後のイベントとして定義し、 共通処理として挿入することができます。
・アクション前フィルタ (preAction)
・アクション後フィルタ (postAction)
・ビュー表示前フィルタ (preRender)
・ビュー表示後フィルタ (postRender)
<?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>
※ インストール初期状態ではフィルタは設定されていません。
タグ名 | 親タグ名 | 属性 | 必須 | 説明 |
---|---|---|---|---|
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属性に対応した値を指定する。 |
例として、入力パラメータに 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>