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
