説明
bool
is_cached ( string template [, string cache_id [, string compile_id]])
テクニカルノート:
is_cached() が TRUE を返すと、
実際にはキャッシュされた出力が読み込まれ、内部に格納されます。続いてコールされる
display() または
fetch()
はこの内部に格納された出力を返し、キャッシュファイルを再読み込みしようとはしません。
これにより、上の例における is_cached() のコールから
display() のコールまでの間に
別のプロセスがキャッシュをクリアしてしまうといった競合を防ぐことができます。これは、
is_cached() が TRUE を返した後は
clear_cache()
やその他キャッシュ設定の変更が何の影響も及ぼさないということも意味します。
例 13-1. is_cached()
<?php $smarty->caching = true;
if(!$smarty->is_cached('index.tpl')) { // ここでデータベースを呼び出し、値を割り当てます }
$smarty->display('index.tpl'); ?>
|
|
例 13-2. 複数のキャッシュを使用したテンプレートにおける is_cached()
<?php $smarty->caching = true;
if(!$smarty->is_cached('index.tpl', 'FrontPage')) { // ここでデータベースを呼び出し、値を割り当てます }
$smarty->display('index.tpl', 'FrontPage'); ?>
|
|
clear_cache()、
clear_all_cache()
および
キャッシュの項 も参照してください。