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


Posted in PHP onDecember 11, 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 相关文章推荐
Dedecms V3.1 生成HTML速度的优化办法
Mar 18 PHP
PHP HTML代码串截取代码
Dec 29 PHP
C# Assembly类访问程序集信息
Jun 13 PHP
php in_array 函数使用说明与in_array需要注意的地方说明
Apr 13 PHP
PHP strncasecmp字符串比较的小技巧
Jan 04 PHP
php读取mysql乱码,用set names XXX解决的原理分享
Dec 29 PHP
php实现的任意进制互转类分享
Jul 07 PHP
PHP实现GIF图片验证码
Nov 04 PHP
关于PHP 如何用 curl 读取 HTTP chunked 数据
Feb 26 PHP
PHP实现的链式队列结构示例
Sep 15 PHP
php简单计算权重的方法示例【适合抽奖类应用】
Jun 10 PHP
浅谈laravel框架与thinkPHP框架的区别
Oct 23 PHP
php5 图片验证码实现代码
Dec 11 #PHP
php下图片文字混合水印与缩略图实现代码
Dec 11 #PHP
一个比较简单的PHP 分页分组类
Dec 10 #PHP
PHP 采集程序中常用的函数
Dec 09 #PHP
Php 构造函数construct的前下划线是双的_
Dec 08 #PHP
PHP 读取文件内容代码(txt,js等)
Dec 06 #PHP
PHP 用数组降低程序的时间复杂度
Dec 04 #PHP
You might like
PHP4实际应用经验篇(1)
2006/10/09 PHP
解析php入库和出库
2013/06/25 PHP
php快递单号查询接口使用示例
2014/05/05 PHP
PHP return语句的另一个作用
2014/07/30 PHP
Use Word to Search for Files
2007/06/15 Javascript
JavaScript和ActionScript的交互实现代码
2010/08/01 Javascript
JavaScript学习笔记(一) js基本语法
2011/10/25 Javascript
让复选框只能选择一项的方法
2013/10/08 Javascript
jQuery瀑布流插件Wookmark使用实例
2014/04/02 Javascript
jQuery插件支持同一页面被多次调用
2016/02/14 Javascript
jQuery插件formValidator实现表单验证
2016/05/23 Javascript
javascript基础知识
2016/06/07 Javascript
node.js学习之base64编码解码
2016/10/21 Javascript
Javascript 普通函数和构造函数的区别
2016/11/05 Javascript
详解如何在Vue项目中导出Excel
2019/04/19 Javascript
Javascript数组方法reduce的妙用之处分享
2019/06/10 Javascript
vue项目打包为APP,静态资源正常显示,但API请求不到数据的操作
2020/09/12 Javascript
[02:12]2015国际邀请赛 SHOWOPEN
2015/08/05 DOTA
Python中创建字典的几种方法总结(推荐)
2017/04/27 Python
python 中的int()函数怎么用
2017/10/17 Python
浅谈用Python实现一个大数据搜索引擎
2017/11/28 Python
Python使用jsonpath-rw模块处理Json对象操作示例
2018/07/31 Python
pygame游戏之旅 添加游戏介绍
2018/11/20 Python
对dataframe数据之间求补集的实例详解
2019/01/30 Python
python基于plotly实现画饼状图代码实例
2019/12/16 Python
django使用F方法更新一个对象多个对象字段的实现
2020/03/28 Python
Python3自定义json逐层解析器代码
2020/05/11 Python
俄罗斯玩具、儿童用品、儿童服装和鞋子网上商店:MyToys.ru
2019/10/14 全球购物
华为python面试题
2016/05/03 面试题
大学生毕业自我鉴定范文
2013/11/03 职场文书
大学生怎样写好自荐信
2014/02/25 职场文书
办公室主任个人总结
2015/02/28 职场文书
公司辞职信模板
2015/05/13 职场文书
岗位聘任协议书
2015/09/21 职场文书
幼儿园保教工作总结2015
2015/10/15 职场文书
员工升职自我评价
2019/03/26 职场文书