filters.yml 設定ファイル
~filters.yml
~ 設定ファイルでは、すべてのリクエストで実行されるフィルタチェーンを記述します。
アプリケーションのメイン設定ファイルである filters.yml
は apps/APP_NAME/config/
ディレクトリで見つかります。
設定ファイルの原則の章で説明したように、filters.yml
ファイルでは、コンフィギュレーションカスケードのメカニズムがはたらき、定数を定義することができます。
filters.yml
設定ファイルには名前つきフィルタ定義のリストが用意されています:
---
FILTER_1:
# フィルタ1の定義
FILTER_2:
# フィルタ2の定義
# ...
コントローラがリクエストに対応してフィルタチェーンを初期化するとき、filters.yml
ファイルを読み込み、フィルタオブジェクトを設定するために使われるフィルタのクラス名 (class
) とパラメータ (param
) を探し、フィルタを登録します:
---
FILTER_NAME:
class: CLASS_NAME
param: { ARRAY OF PARAMETERS }
フィルタは設定ファイルに記載されている順序で実行されます。symfony は複数のフィルタを1つのチェーンとして実行するので、最初に登録されるフィルタは最初と最後に実行されます。
class
クラスは sfFilter
基底クラスを継承します。
フィルタクラスがオートロードされない場合、file
パスが定義され、フィルタオブジェクトが作られる前に自動的にインクルードされます:
---
FACTORY_NAME:
class: CLASS_NAME
file: ABSOLUTE_PATH_TO_FILE
filters.yml
ファイルをオーバーライドするとき、継承するファイルからすべてのフィルタを守らなければなりません:
---
rendering:
security:
cache:
execution:
フィルタを除外するには、enabled
キーを false
にセットして無効にする必要があります:
---
FACTORY_NAME:
enabled: false
特別な名前のフィルタが2つあります (rendering
と execution
)。これらのフィルタは両方とも必須で、type
パラメータで指定します。最初に登録されるのはつねに rendering
フィルタで、最後に登録されるのは execution
フィルタです:
---
rendering:
class: sfRenderingFilter
param:
type: rendering
# ...
execution:
class: sfExecutionFilter
param:
type: execution
filters.yml
設定ファイルは PHP ファイルとしてキャッシュされます。処理は ~sfFilterConfigHandler
~ クラスによって自動管理されます。
フィルタ
rendering
デフォルトコンフィギュレーション:
---
rendering:
class: sfRenderingFilter
param:
type: rendering
rendering
フィルタはブラウザへのレスポンス出力の責務を担います。このフィルタは最初に登録されるフィルタであり、リクエストを管理する機会をもつ最後のフィルタでもあります。
security
デフォルトコンフィギュレーション:
---
security:
class: sfBasicSecurityFilter
param:
type: security
security
フィルタは、アクションの getCredential()
メソッドを呼び出すことでセキュリティをチェックします。いったんクレデンシャルを得られたら、ユーザーオブジェクトの hasCredential()
メソッドを呼び出すことで、ユーザーが同じクレデンシャルをもつことを確認できます。
security
フィルタのデータ型は security
でなければなりません。
security
フィルタのコンフィギュレーションをきめ細かく調整するには、security.yml
設定ファイルを通して行います。
security.yml
で必須のアクションがセキュアなものとして設定されていない場合、security
フィルタは実行されません。
cache
デフォルトコンフィギュレーション:
---
cache:
class: sfCacheFilter
param:
condition: %SF_CACHE%
cache
フィルタはアクションとページを管理します。このフィルタは必要な HTTP キャッシュヘッダーをレスポンスに追加するための責務も担います (Last-Modified
、ETag
、Cache-Control
、Expires
、・・・)。
execution
デフォルトコンフィギュレーション:
---
execution:
class: sfExecutionFilter
param:
type: execution
execution
フィルタはフィルタチェーンのまんなかにあり、すべてのアクションとビューの実行を担います。
execution
フィルタは最後に登録されるフィルタになります。
関連ページリスト
Related Pages
日本語ドキュメント
Japanese Documents
- 2011/01/18 Chapter 17 - Extending Symfony
- 2011/01/18 The generator.yml Configuration File
- 2011/01/18 Les tâches
- 2011/01/18 Emails
- 2010/11/26 blogチュートリアル(8) ビューの作成
リリース情報
Release Information
- 2.0 : 2.0.15(2011/05/30)
Symfony2日本語ドキュメント - 1.4 : 1.4.18(2012/05/30)
Changelog