php smarty模版引擎中的緩存應用

php中smarty模版引擎中的緩存應用實現代碼,須要的朋友能夠參考下。
1,Smarty緩存的配置: 
複製代碼代碼以下:

$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來壓縮和解壓
相關文章
相關標籤/搜索