cache.yml
設定ファイルはビューレイヤー用のキャッシュ設定を記述します。
この設定ファイルはsettings.yml
でcache
設定が有効な場合のみアクティブになります。
tip
クラスのコンフィギュレーションはキャッシュのために使われ関連設定はview_cache_manager
とfactories.yml
設定ファイルのview_cache
セクションで行われます。
アプリケーションが作成されるとき、symfonyはアプリケーションのconfig/
ディレクトリにデフォルトのcache.yml
ファイルを生成します。
このファイルはアプリケーション全体のキャッシュを記述します(default
キーの下)。
デフォルトでは、キャッシュはグローバルスコープでoff
にセットされます:
default: enabled: off with_layout: false lifetime: 86400
tip
デフォルトではenabled
設定はfalse
にセットされるので、キャッシュを選り分けて有効にする必要があります。
ほかの方法もあります:
グローバルスコープのキャッシュを有効にし、キャッシュする必要のない特定のページでキャッシュを無効にします。
どちらのほうがアプリケーションの作業量が少ないのかによって選ぶ方法が決まります。
はじめの章で説明したように、cache.yml
ファイルはコンフィギュレーションカスケードのメカニズムが有効になり、定数を格納することができます。
note
cache.yml
設定ファイルはPHPファイルとしてキャッシュされます;
処理はsfCacheConfigHandler
クラスによって自動的に管理されます。
アプリケーションのデフォルトコンフィギュレーションはモジュールのconfig/
ディレクトリのなかでcache.yml
ファイルを作ることでモジュールのためにオーバーライドできます。
メインキーはプレフィックスのexecute
なしのアクションの名前です(たとえばindex
キーはexecuteIndex
メソッドです)。
名前にアンダースコア(_
)のプレフィックスをつけることでパーシャルもしくはコンポーネントもキャッシュできます。
アクションがキャッシュされるかどうか決定するのに、symfonyは次の順序で情報を探します:
存在するのであれば、モジュール設定ファイルでの特定のアクション、パーシャル、コンポーネント用のコンフィギュレーション;
存在するのであれば、モジュール設定ファイルでのモジュール全体用のコンフィギュレーション(
all
キーの下);アプリケーションのデフォルトコンフィギュレーション(
default
キーの下)
caution
クエリーストリングのGET
パラメーターで送信されるリクエストや、POST
、PUT
もしくはDELETE
メソッドで投稿されたリクエストはコンフィギュレーションに関わらず決してキャッシュされません。
enabled
デフォルト: off
enabled
設定は現在のスコープでのキャッシュを有効もしくは無効にします。
with_layout
デフォルト: false
with_layout
設定はページ全体(true
)、かアクションのみ(false
)をキャッシュするかを決定します。
note
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
にセットされます。
false
にセットされているということはパーシャルとコンポーネントがどこでインクルードされても、出力が常に同じであることを意味します。
note
異なるパラメーターのセットに対してキャッシュは明らかに異なります。
This work is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License license.