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 相关文章推荐
PHP计划任务、定时执行任务的实现代码
Apr 23 PHP
php中http_build_query 的一个问题
Mar 25 PHP
深入PHP购物车模块功能分析(函数讲解,附源码)
Jun 25 PHP
浅析php数据类型转换
Jan 09 PHP
浅谈php函数serialize()与unserialize()的使用方法
Aug 19 PHP
修改WordPress中文章编辑器的样式的方法详解
Dec 15 PHP
php使用curl并发减少后端访问时间的方法分析
May 12 PHP
关于PHP转换超过2038年日期出错的问题解决
Jun 28 PHP
PHP基于面向对象实现的留言本功能实例
Apr 04 PHP
PHP7新功能总结
Apr 14 PHP
Laravel框架自定义公共函数的引入操作示例
Apr 16 PHP
JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
Apr 16 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
德生H-501的评价与改造
2021/03/02 无线电
一篇不错的PHP基础学习笔记
2007/03/18 PHP
PHP获取表单所有复选框的值的方法
2014/08/28 PHP
PHP安装threads多线程扩展基础教程
2015/11/17 PHP
标准版Eclipse搭建PHP环境的详细步骤
2015/11/18 PHP
PHP实现的用户注册表单验证功能简单示例
2019/02/25 PHP
利用javascript中的call实现继承
2007/01/22 Javascript
jQuery 使用个人心得
2009/02/26 Javascript
Javascript 定时器调用传递参数的方法
2009/11/12 Javascript
js三种排序算法分享
2012/08/16 Javascript
JS将数字转换成三位逗号分隔的样式(示例代码)
2014/02/19 Javascript
JavaScript极简入门教程(三):数组
2014/10/25 Javascript
js中Number数字数值运算后值不对的解决方法
2017/02/28 Javascript
Vue动态组件实例解析
2017/08/20 Javascript
微信小程序按钮点击跳转页面详解
2019/05/06 Javascript
详解JavaScript 事件流
2020/09/02 Javascript
vue+element UI实现树形表格
2020/12/29 Vue.js
[01:18:31]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第一场 1月10日
2021/03/11 DOTA
解决Django Static内容不能加载显示的问题
2019/07/28 Python
Python自动化测试笔试面试题精选
2020/03/12 Python
python中数字是否为可变类型
2020/07/08 Python
Python爬虫UA伪装爬取的实例讲解
2021/02/19 Python
HTML5 device access 设备访问详解
2018/05/24 HTML / CSS
贝玲妃英国官网:Benefit英国
2018/02/03 全球购物
神路信息Java面试题目
2013/03/31 面试题
儿科主治医生个人求职信
2013/09/23 职场文书
高中生毕业学习总结的自我评价
2013/11/14 职场文书
军训心得体会
2013/12/31 职场文书
职工运动会邀请函
2014/01/19 职场文书
思想纪律作风整顿剖析材料
2014/10/11 职场文书
小学教师个人工作总结2015
2015/04/20 职场文书
2015年法院工作总结范文
2015/04/28 职场文书
怎样写观后感
2015/06/19 职场文书
小学英语新课改心得体会
2016/01/22 职场文书
JavaScript 定时器详情
2021/11/11 Javascript
win server2012 r2服务器共享文件夹如何设置
2022/06/21 Servers