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来压缩和解压
相关文章
相关标签/搜索