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

説明

bool is_cached ( string template [, string cache_id [, string compile_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() やその他キャッシュ設定の変更が何の影響も及ぼさないということも意味します。

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');

スポンサーリンク

関連記事

スポンサーリンク

『アイコンの整列』でショートカットが2箇所に分かれる

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る