Caution: You are browsing the legacy symfony 1.x part of this website.

cache.yml設定ファイル

1.2
Symfony version
1.4
Language

cache.yml設定ファイルはビューレイヤー用のキャッシュ設定を記述します。 この設定ファイルはsettings.ymlcache設定が有効な場合のみアクティブになります。

tip

クラスのコンフィギュレーションはキャッシュのために使われ関連設定はview_cache_managerfactories.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パラメーターで送信されるリクエストや、POSTPUTもしくは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

異なるパラメーターのセットに対してキャッシュは明らかに異なります。