php smarty模版引擎中的缓存应用


Posted in PHP onDecember 02, 2009

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来压缩和解压

PHP 相关文章推荐
mysql建立外键
Nov 25 PHP
php 生成饼图 三维饼图
Sep 28 PHP
php操作xml
Oct 27 PHP
php读取excel文件示例分享(更新修改excel)
Feb 27 PHP
ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
Oct 29 PHP
PHP中的命名空间相关概念浅析
Jan 22 PHP
php中执行系统命令的方法
Mar 21 PHP
laravel实现批量更新多条记录的方法示例
Oct 22 PHP
PHP实现git部署的方法教程
Dec 19 PHP
php 读取文件夹下所有图片、文件的实例
Oct 17 PHP
Yii支持多域名cors原理的实现
Dec 05 PHP
smarty模板的使用方法实例分析
Sep 18 PHP
php 一元分词算法
Nov 30 #PHP
PHP MYSQL乱码问题,使用SET NAMES utf8校正
Nov 30 #PHP
php读取html并截取字符串的简单代码
Nov 30 #PHP
php 获取客户端的真实ip
Nov 30 #PHP
php操作sqlserver关于时间日期读取的小小见解
Nov 29 #PHP
php中$this-&amp;gt;含义分析
Nov 29 #PHP
php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法
Nov 27 #PHP
You might like
图书管理程序(二)
2006/10/09 PHP
php简单定时执行任务的实现方法
2015/02/23 PHP
用showModalDialog弹出页面后,提交表单总是弹出一个新窗口
2009/07/18 Javascript
javascript实现的像java、c#之类的sleep暂停的函数代码
2010/03/04 Javascript
js中匿名函数的N种写法
2010/09/08 Javascript
基于jQuery的仿flash的广告轮播代码
2010/11/04 Javascript
给文字加上着重号的JS代码
2013/11/12 Javascript
JS判断字符串长度的5个方法(区分中文和英文)
2014/03/18 Javascript
js身份证判断方法支持15位和18位
2014/03/18 Javascript
js中for in语句的用法讲解
2015/04/24 Javascript
JS将滑动门改为选项卡(需鼠标点击)的实现方法
2015/09/27 Javascript
Vue计算属性的使用
2017/08/04 Javascript
详解Vue 换肤方案验证
2019/08/28 Javascript
vuex实现像调用模板方法一样调用Mutations方法
2019/11/06 Javascript
JS常用排序方法实例代码解析
2020/03/03 Javascript
详谈vue中router-link和传统a链接的区别
2020/07/22 Javascript
python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
2014/07/09 Python
Python 串口读写的实现方法
2019/06/12 Python
Python-Flask:动态创建表的示例详解
2019/11/22 Python
Pytorch之view及view_as使用详解
2019/12/31 Python
Python如何创建装饰器时保留函数元信息
2020/08/07 Python
Lacoste美国官网:经典POLO衫品牌
2016/10/12 全球购物
美国性感内衣店:Yandy
2018/06/12 全球购物
巴西儿童时尚购物网站:Dinda
2019/08/14 全球购物
北京泡泡网网络有限公司.net面试题
2012/07/17 面试题
大学生个人简历自我评价
2013/11/16 职场文书
财务会计人员岗位职责
2013/11/30 职场文书
应届大学生自荐信
2013/12/05 职场文书
超市业务员岗位职责
2013/12/05 职场文书
学习委员自我鉴定
2014/01/13 职场文书
2014年道德讲堂实施方案
2014/03/05 职场文书
基层党支部公开承诺书
2014/05/29 职场文书
如何写早恋检讨书
2014/09/10 职场文书
网络妈妈观后感
2015/06/08 职场文书
史上最全书信经典范文大全(建议收藏)
2019/07/10 职场文书
Python进行区间取值案例讲解
2021/08/02 Python