Yahoo! JAPAN


is_cached()

is_cached() -- テンプレートが有効なキャッシュを持つ場合にtrueを返します。

説明

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() および キャッシュの項 も参照してください。