キャッシュは出力内容をファイルに保存する事によって、display()又はfetch()を呼び出す速度を上げるために使用されます。呼び出されたキャッシュが有効の場合、出力を再生成せずに表示されます。特に処理時間が長いテンプレートは、キャッシュを使用する事でおそろしく速度が上昇するでしょう。display()又はfetch()の出力がキャッシュされた後、ひょっとすると1つのキャッシュファイルは複数のテンプレートファイルや設定ファイル等で構成されているかもしれません。
テンプレートが動的コンテンツの場合、何をどれくらいの間キャッシュするのか注意が必要です。例えば、Webサイトの一面にそれほど変更されないコンテンツが表示されている場合は、一時間かそれ以上、このページをキャッシュするとうまく動作するでしょう。一方、一分経過するごとに新しい情報が格納される天気図をページに表示する場合は、このページをキャッシュする事は意味をなさないでしょう。
まずはじめにキャッシュを有効にします。これは、$caching = true (又は 1)を設定するだけです。
いつものようにテンプレートから出力内容をパースするためにdisplay('index.tpl')を呼び出しますが、キャッシュを有効にした事でその出力内容をコピーしたファイルが$cache_dir内に保存されます。次にdisplay('index.tpl')が呼ばれる時、再びテンプレートをパースする代わりにキャッシュされたコピーが使用されます。
テクニカルノート: $cache_dir内のファイルにはテンプレート名に類似した名前が付けられます。それらは".php"拡張子ですが、本当にはphpスクリプトとして実行されません。これらのファイルは編集しないで下さい!
各々のキャッシュされたページは、$cache_lifetimeによって生存時間が限られています。デフォルト値は3600秒です。期限が過ぎた後、キャッシュは再生成されます。$caching = 2 を設定する事によって、個々のキャッシュに自分自身の生存時間を与える事が可能です。詳細は、$cache_lifetimeを参照して下さい。
$compile_checkが有効の時、キャッシュファイルに入り組んだすべてのテンプレートファイルと設定ファイルは修正されたかどうかをチェックされます。もしキャッシュが生成されてからいくつかのファイルが修正されていた場合、キャッシュは即座に再生成されます。これは最適なパフォーマンスのためには僅かなオーバーヘッドになるので、$compile_checkはfalseにして下さい。
$force_compileが有効の場合、キャッシュファイルは常に再生成されます。これは事実上、キャッシュ機能を無効にします。通常、$force_compileはデバッグ目的でのみ使用し、キャッシュは$caching = false (又は 0)にセットして無効にするのがさらに効率の良い方法です。
is_cached()関数は、テンプレートが有効なキャッシュを持っているかどうかを調べるのに使われます。もしデータベースフェッチのようなものを必要をするキャッシュされたテンプレートを持つとき、その過程をスキップするためにこの関数を使う事が出来ます。
insertテンプレート関数によってページの一部を動的に保つ事が出来ます。例えば、すべてのページは右下に表示されるバナー以外はキャッシュが可能だとします。バナー部分にはinsert関数を使う事によって、キャッシュされたコンテンツの中に動的な要素を保つ事ができます。詳細は、insertを参照して下さい。
clear_all_cache()関数またはclear_cache()関数によって、個々のキャッシュファイル(又はグループ)をクリアする事ができます。