スマーティのキャッシュの使い方のメモ

よく使うスマーティの使い方は、
$_GETで、index.phpに引数を渡して、データベースなり、配列なりから呼び出したレコードでアサインし、指定したテンプレートで表示する。
いまどき、クエスチョンマークかよ!と、冷笑されるので、mod_rewriteで、htmlを装う。

本当は、スクリプトを使わなくていいのに、そのほうが簡単なので、スクリプトで書いてしまう。

そんな帳尻を合わせてくれる。キャッシュですが、下手こくと、トンでもなページが表示されてしまったりします。

だから、そんな自分に、

キャッシュで下手こくなよ、Memo


<?php
require('Smarty.class.php');

	$smarty 			= new Smarty;
//このディレクトリはwebサーバのドキュメントルート下に置く事を推奨しません。 とスマーティ曰く           
	$smarty->cache_dir 		= './cache/'; 
//生存時間は3600sec でいいなら   
	$smarty->caching 		= true;または、1
//生存時間を自分で決める
	$smarty->caching 		= 2;
	$smarty->cache_lifetime 	= 300;
  //ずっとキャッシュしたいときには、
	$smarty->cache_lifetime 	= -1;
  //常に作る
	$smarty->cache_lifetime 	= 0;
		
//キャッシュはしない
 	$smarty->caching 		= false;または、0
										
		if(is_set($_GET['q']) and !empty($_GET['q'])){

		$cache_id = $_GET['q'];

//以下、クエリストリングを評価して、キャッシュを作成するべきかどうかを判断する

//理由:どんなクエリに対しても、キャッシュを作るほどお人よしになってはいけないから、
		}


//キャッシュしていい場合は、

	if(!$smarty->is_cached('index.tpl',$cache_id)) {
     //普通にアサインする。
     $contents = "キャッシュしか受け取れません";
     $smarty->assign($contents);
	}
		

	$smarty->display('index.tpl',$my_cache_id);



// 指定したidのキャッシュを消す。
	$smarty->clear_cache(null,"sports");
// 全てのキャッシュをクリアする
	$smarty->clear_all_cache();
// テンプレートのキャッシュを破棄する
	$smarty->clear_cache("index.tpl"); 

その他 cache_id グループは|で区切る。ディレクトリセパレータみたいに使える。
?>