複製代碼代碼以下:
$smarty->cache-dir="目錄名"; //建立緩存目錄名
$smarty->caching=true; //開啓緩存,爲false的時候緩存無效
$smarty->cache_lifetime=60; //緩存時間,單位是秒
2,Smarty緩存的使用與清除
複製代碼代碼以下:
$marty->display("cache.tpl",cache_id); //建立帶ID的緩存
$marty->clear_all_cache(); //清楚全部緩存
$marty->clear_cache("index.php"); //清楚index.php中的緩存
$marty->clear_cache("index.php',cache_id); //清楚index.php中指定ID的緩存
3,Smarty的局部緩存 第一個: insert_函數默認是不緩存,這個屬性是不能修改 使用方法:例子 index.php中, function insert_get_time(){ return date("Y-m-d H:m:s"); } index.html中, {insert name="get_time"} 第二個: smarty_block 定義一個block:smarty_block_name($params,$content, &$smarty){return $content;} //name表示區域名 註冊block:$smarty->register_block('name', 'smarty_block_name', false); //第三參數false表示該區域不被緩存 模板寫法:{name}內容{/name} 寫成block插件: 1)定義一件插件函數:block.cacheless.php,放在smarty的plugins目錄 block.cacheless.php的內容以下: <?php function smarty_block_cacheless($param, $content, &$smarty) { return $content; } ?> 2) 編寫程序及模板 示例程序:testCacheLess.php <?php include('Smarty.class.php'); $smarty = new Smarty; $smarty->caching=true; $smarty->cache_lifetime = 6; $smarty->display('cache.tpl'); ?> 所用的模板:cache.tpl 已經緩存的:{$smarty.now}<br> {cacheless} 沒有緩存的:{$smarty.now} {/cacheless} 4自定義緩存 設置cache_handler_func使用自定義的函數處理緩存 如: $smarty->cache_handler_func = "myCache"; function myCache($action, &$smarty_obj, &$cache_content, $tpl_file=null, $cache_id=null, $compile_id=null){ } 該函數的通常是根椐$action來判斷緩存當前操做: switch($action){ case "read"://讀取緩存內容 case "write"://寫入緩存 case "clear"://清空 } 通常使用md5($tpl_file.$cache_id.$compile_id)做爲惟一的cache_id 若是須要,可以使用gzcompress和gzuncompress來壓縮和解壓