is_cached() (Smarty クラスメソッド) - PHPプロ!マニュアル

Smartyマニュアル

Smarty クラスメソッド - is_cached()

is_cached()

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

説明

bool is_cached ( string template [, string cache_id [, string compile_id]])

  • これは、 $cachingTRUE の場合にのみ機能します。 キャッシュの項 も参照してください。

  • 1つのテンプレートに 複数のキャッシュ が存在する場合は、第2パラメータに $cache_id を渡すことができます。

  • 第3パラメータに $compile id を渡すを渡す事が出来ます。このパラメータを省いた時は、もし永続的な $compile_id が設定されていればそれを使用します。

  • $cache_id は渡さずに $compile_id だけを渡したい場合は、 $cache_idNULL を指定します。

テクニカルノート: 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() および キャッシュの項 も参照してください。

閲覧履歴



Pick Up Q&A

Q
ログファイルの中の空のデータ行を削除したい
 このエントリーをはてなブックマークに追加 
A
ログのデータ個数(列数)が固定で、空のログが"<><><>"だと既知であれば if ($line === "<><><>") { continue; } で読み飛ばしてもいいのでは? ...

>>続きを読む

まずは配列や文字列の扱いから、じっくり勉強して行きましょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)

Q&A掲示板 新着情報