[PHP-users 19023]Re: お勧めのテンプレートは?

fornet @ anet.ne.jp fornet @ anet.ne.jp
2003年 11月 20日 (木) 05:39:54 JST


初めての投稿になります、小松です。
よろしくお願いします。

> Smartyはファイル単位でのキャッシング指定が
> できないということを聞いたことがあります。
> (全体でキャッシュを使用するか、しないかのどちらか)

$cachingの0と1の切り替えだけで、実現可能だと思います...

もしかりに、$cachingの値をSmartyのサブクラスで指定などして、
変更しないというルールで開発を行ったとしても、
以下の方法もあります。

<?php

include("SubSmarty.class.php");
$smarty = new SubSmarty;

/* SubSmartyの中で以下に設定
 * cache毎に生成時の$cache_lifetimeを管理
 */ $this->caching = 2;

if (...) {
	// cacheを毎回再生成
	$smarty->cache_lifetime = 0;
	$smarty->display("hoge1.tpl");
} else {
	// cacheを1時間毎に再生成
	$smarty->cache_lifetime = 3600;
	$smarty->display("hoge2.tpl");
}

?>


Smartyは、display、clear_cache、is_cachedなどの関数の第2引数に任意のcompile
_idを指定して、
1つのテンプレートファイルに複数のキャッシュを持たせる事も可能です。
結構柔軟な挙動設定が可能なので、キャッシュはお勧めですよ。

※ちなみに、Smartyの日本語ガイドの$cachingの値の説明の箇所はちょっと日本語が
おかしいかも?


小松



PHP-users メーリングリストの案内