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 相关文章推荐
php数组函数序列之array_sum() - 计算数组元素值之和
Oct 29 PHP
PHP程序级守护进程的实现与优化的使用概述
May 02 PHP
XAMPP安装与使用方法详细解析
Nov 27 PHP
利用浏览器的Javascript控制台调试PHP程序
Jan 08 PHP
php使用cookie实现记住登录状态
Apr 27 PHP
PHP编写RESTful接口的方法
Feb 21 PHP
CI框架数据库查询之join用法分析
May 18 PHP
PHP多维数组指定多字段排序的示例代码
May 16 PHP
PHP使用phpunit进行单元测试示例
Sep 23 PHP
ThinkPHP5.1+Ajax实现的无刷新分页功能示例
Feb 10 PHP
PHP执行系统命令函数实例讲解
Mar 03 PHP
PHP获取php,mysql,apche的版本信息及更多服务器信息
Mar 09 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
php debug 安装技巧
2011/04/30 PHP
php定义一个参数带有默认值的函数实例分析
2015/03/16 PHP
php.ini中date.timezone设置详解
2016/11/20 PHP
使用一个for循环将N*N的二维数组的所有值置1实现方法
2017/05/29 PHP
Laravel框架中自定义模板指令总结
2017/12/17 PHP
对laravel in 查询的使用方法详解
2019/10/09 PHP
jquery JSON的解析方式
2009/07/25 Javascript
一句话JavaScript表单验证代码
2009/08/02 Javascript
jquery下onpropertychange事件的绑定方法
2010/08/01 Javascript
JavaScript中继承的一些示例方法与属性参考
2010/08/07 Javascript
JavaScript 打地鼠游戏代码说明
2010/10/12 Javascript
如何正确使用javascript 来进行我们的程序开发
2014/06/23 Javascript
Mac OS X 系统下安装和部署Egret引擎开发环境
2014/09/03 Javascript
JavaScript中eval函数的问题
2016/01/31 Javascript
Bootstrap3 图片(响应式图片&amp;图片形状)
2017/01/04 Javascript
ES6扩展运算符用法实例分析
2017/10/31 Javascript
JavaScript实现获取select下拉框中第一个值的方法
2018/02/06 Javascript
react-native-video实现视频全屏播放的方法
2018/03/19 Javascript
小程序云开发之用户注册登录
2019/05/18 Javascript
JavaScript实现Tab标签页切换的最简便方式(4种)
2020/06/28 Javascript
uni-app使用countdown插件实现倒计时
2020/11/01 Javascript
[55:44]OG vs NAVI 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python画出三角形外接圆和内切圆的方法
2018/01/25 Python
用python处理图片之打开\显示\保存图像的方法
2018/05/04 Python
Python wxPython库使用wx.ListBox创建列表框示例
2018/09/03 Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
2019/06/13 Python
Django 多表关联 存储 使用方法详解 ManyToManyField save
2019/08/09 Python
pandas条件组合筛选和按范围筛选的示例代码
2019/08/26 Python
Python迭代器模块itertools使用原理解析
2019/12/11 Python
学习Python列表的基础知识汇总
2020/03/10 Python
CSS3教程(10):CSS3 HSL声明设置颜色
2009/04/02 HTML / CSS
amazeui时间组件的实现示例
2020/08/18 HTML / CSS
四年的大学生生活自我评价
2013/12/09 职场文书
广告语设计及教案
2014/03/21 职场文书
小学模范班主任事迹材料
2014/05/13 职场文书
七一慰问简报
2015/07/20 职场文书