WEBアプリケーション研究室 開発ノート TOP

WEBアプリケーション研究室 開発ノート [PHP] Smatyのキャッシュについて

スポンサーサイト

-------- --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

    このエントリーをはてなブックマークに追加

公式日本語マニュアルの$cachingについての項ですが、以前から何度読んでも意味が理解できませんでした。ふと原文を読んだら理解できるかもと思い立ち読んでみたら、やっぱり簡単にわかりました。
訳おかしいですよね・・・
簡単に説明すると


$smarty->caching = 1;
1の時はis_cached()でそのテンプレのキャッシュが有効かどうか調べた時、キャッシュファイルが作られた時間に$cache_lifetimeを足した時間と現在の時間を比較して判断します。この時$cache_lifetimeはis_cached()が呼ばれた時点の値を使用します。一方

$smarty->caching = 2;
2の時はキャッシュ作成時(display()またはfetch()が呼ばれた時)に$cache_lifetimeから有効期限を計算しキャッシュに書き込んでしまいます。is_cached()はその時間と現在時刻を比べます。キャッシュが作られた時点の$cache_lifetimeが重要なわけです。

1の利点は後から全てのキャッシュの有効期限を簡単に変更できるってとこなのでしょうか?よくわかりませんが、2でもキャッシュを消してしまえば変更出来ますよね。

マニュアルには2の利点が1ページ内でテンプレートをいくつかに分けて、テンプレによりキャッシュ時間を変えるのができるとあります・・・あれ?でも1でもそれぞれis_cached()を呼ぶ直前に時間を設定してやればいけるんじゃなかろうか??????

強いて言うなら1はページリクエストのたびに計算+比較が行われるのに対して、2は比較のみです。ものすごい微々たる負荷の差ですが、少しでも軽いほうがいいに決まってます。

もしかしたら、最初はtrue(1)のみで後から、少し良い2を思いついて2を追加したのかも知れません。
まあ、私は2を使います。
スポンサーサイト

    このエントリーをはてなブックマークに追加
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。