is_cached()
テンプレートが有効なキャッシュを持つ場合にtrueを返します。
説明
boolis_cached
stringtemplate
stringcache_id
stringcompile_id
これは、
$caching が &true; の場合にのみ機能します。
キャッシュの項 も参照してください。
1つのテンプレートに
複数のキャッシュ
が存在する場合は、第2パラメータに
$cache_id を渡すことができます。
第3パラメータに
$compile id
を渡すを渡す事が出来ます。このパラメータを省いた時は、もし永続的な
$compile_id が設定されていればそれを使用します。
$cache_id は渡さずに
$compile_id だけを渡したい場合は、
$cache_id に &null; を指定します。
テクニカルノート
is_cached() が &true; を返すと、
実際にはキャッシュされた出力が読み込まれ、内部に格納されます。続いてコールされる
display() または
fetch()
はこの内部に格納された出力を返し、キャッシュファイルを再読み込みしようとはしません。
これにより、上の例における is_cached() のコールから
display() のコールまでの間に
別のプロセスがキャッシュをクリアしてしまうといった競合を防ぐことができます。これは、
is_cached() が &true; を返した後は
clear_cache()
やその他キャッシュ設定の変更が何の影響も及ぼさないということも意味します。
is_cached()
caching = true;
if(!$smarty->is_cached('index.tpl')) {
// ここでデータベースを呼び出し、値を割り当てます
}
$smarty->display('index.tpl');
?>
]]>
複数のキャッシュを使用したテンプレートにおける is_cached()
caching = true;
if(!$smarty->is_cached('index.tpl', 'FrontPage')) {
// ここでデータベースを呼び出し、値を割り当てます
}
$smarty->display('index.tpl', 'FrontPage');
?>
]]>
clear_cache()、
clear_all_cache()
および
キャッシュの項 も参照してください。