cache.yml 設定ファイル
~cache.yml
~ 設定ファイルでは、ビューレイヤーのキャッシュコンフィギュレーションを記述します。この設定ファイルは settings.yml
で cache
設定が有効な場合のみアクティブになります。
クラスのコンフィギュレーションはキャッシュのために使われ、関連コンフィギュレーションの変更は
view_cache_manager
とfactories.yml
設定ファイルのview_cache
セクションで行います。
アプリケーションが作られるとき、symfony はデフォルトの cache.yml
ファイルをアプリケーションの config/
ディレクトリに生成します。このファイルでは、アプリケーション全体のキャッシュを記述します (default
キーの下)。デフォルトでは、キャッシュはグローバルで false
にセットされています:
---
default:
enabled: false
with_layout: false
lifetime: 86400
デフォルトでは、
enabled
設定はfalse
にセットされているので、キャッシュを個別に有効にする必要があります。ほかには、グローバルキャッシュを有効にし、キャッシュする必要のない特定のページでキャッシュを無効にする方法もあります。作業量が少ないほうを選ぶとよいでしょう。
設定ファイルの原則の章で説明したように、cache.yml
ファイルでは、コンフィギュレーションカスケードのメカニズムがはたらき、定数を定義することができます。
cache.yml
設定ファイルは PHP ファイルとしてキャッシュされます。処理は ~sfCacheConfigHandler
~ クラスによって自動管理されます。
モジュールのためにアプリケーションのデフォルトコンフィギュレーションをオーバーライドするには、モジュールの config/
ディレクトリのなかで cache.yml
ファイルを作ります。メインキーはアクションの名前で、プレフィックスの execute
をつけません (たとえば executeIndex
メソッドであれば index
)。名前にプレフィックスのアンダースコア (_
) をつければ、パーシャルもしくはコンポーネントもキャッシュできます。
アクションをキャッシュするかどうかを決めるのに、symfony は次の順序で情報を探します:
-
存在しているのであれば、モジュール設定ファイルでの特定のアクション、パーシャル、コンポーネントのコンフィギュレーション;
-
存在しているのであれば、モジュール設定ファイルでのモジュール全体のコンフィギュレーション (
all
キーの下); -
アプリケーションのデフォルトコンフィギュレーション (
default
キーの下)
コンフィギュレーションに関わらず、クエリ文字列の
GET
パラメータで送信されるリクエストや、POST
、PUT
もしくはDELETE
メソッドで投稿されるリクエストはキャッシュされることはけっしてありません。
~enabled
~
デフォルト: false
enabled
設定は現在のスコープにおけるキャッシュを有効もしくは無効にします。
~with_layout
~
デフォルト: false
with_layout
設定はキャッシュの対象をページ全体 (true
) かアクションだけ (false
) にするのかを決めます。
with_layout
オプションはパーシャルとコンポーネントキャッシュには反映されません。これらをレイアウトによって飾りつけることができないからです。
~lifetime
~
デフォルト: 86400
lifetime
設定はサーバーサイドキャッシュの有効期間を秒単位で定義します (86400
秒は1日に等しい)。
~client_lifetime
~
デフォルト: lifetime
の値と同じ
client_lifetime
設定はクライアントサイドキャッシュの有効期間を秒単位で定義します。
すでに Last-Modified
もしくは Expires
ヘッダーがセットされていないかぎり、この設定は Expires
ヘッダーと max-cache
キャッシュコントロール変数を自動的にセットするために使われます。
この値を0
にセットすることでクライアントサイドキャッシュを無効にできます。
~contextual
~
デフォルト: false
contextual
設定はキャッシュが現在のページのコンテキストに依存するかどうかを決めます。それゆえ、この設定が反映されるのはパーシャルとコンポーネントによって使われるときだけです。
インクルードされるテンプレートによってパーシャルの出力が異なるとき、パーシャルはコンテキストのなかにある (contextual) と見なされるので、contextual
設定を true
にセットしなければなりません。デフォルトでは、この設定は false
にセットされており、このことが意味するのは、パーシャルとコンポーネントがどこでインクルードされても出力がつねに同じであるということです。
パラメータのセットが異なればキャッシュが異なるのは明らかです。
インデックス
Document Index
関連ページリスト
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