テンプレートキャッシュについて

テンプレートキャッシュについて詳しくご紹介します。

テンプレートキャッシュを有効にする

「private/config.system.yaml」に以下の記述をすると機能が有効化されます。

template_cache: on

3系の「config.system.yaml」はデフォルトで、テンプレートキャッシュが有効になっています。よって2系からのアップデートの場合は、通常「config.system.yaml」を更新しないため、テンプレートキャッシュはオフの状態となっております。

また「DEBUG_MODE」時はテンプレートキャッシュが有効になりません。 テンプレートキャッシュを使いたい場合は「config.server.php」で「DEBUG_MODE」を「0」にしましょう。

define('DEBUG_MODE', 0);

テンプレートキャッシュが使える条件(制限事項)

テンプレートキャッシュを有効にすると、テンプレートの作り方に制限が設けられます。
具体的には、インクルード文の中に使用できるグローバル変数が限定されます。

<!-- 以下のようなインクルード文で使用するグローバル変数が限定されます。 -->

@include("/admin/entry/bcd/%{BCD}.html")

使用できるグローバル変数

  • %{ECD}
  • %{BCD}
  • %{PBCD}
  • %{RBCD}
  • %{CCD}
  • %{PCCD}
  • %{RCCD}
  • %{ALIAS_CODE}
  • %{IS_ADMIN}
  • %{MODULE_NAME}
  • %{MODULE_ID}
  • %{ADMIN_PATH}
  • %{ADMIN_PATH_MID}

以下のような 正規表現 で全文検索すると、インクルード文の中でグローバル変数を使っている箇所を検索できます。 (@include方式のみ)

@include\(['"][^'"]*%\{[^\}]+\}

テンプレートキャッシュが有効時は、テンプレートを編集しても反映されません。
開発環境では「DEBUG_MODE」をオンにしてキャッシュされないようにして作業し、本番環境では「DEBUG_MODE」をオフにしてテンプレートキャッシュを有効にするのがいいでしょう。

本番環境反映時には、ダッシュボードからテンプレートキャッシュのクリアを忘れないようにしましょう。