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 相关文章推荐
用缓存实现静态页面的测试
Dec 06 PHP
IIS环境下快速安装、配置和调试PHP5.2.0
Dec 17 PHP
PHP与SQL注入攻击[二]
Apr 17 PHP
php MYSQL 数据备份类
Jun 19 PHP
PHP 变量的定义方法
Jan 26 PHP
解析php根据ip查询所在地区(非常有用,赶集网就用到)
Jul 01 PHP
PHP获取栏目的所有子级和孙级栏目的ID号示例
Apr 01 PHP
CI(CodeIgniter)框架中的增删改查操作
Jun 10 PHP
验证token、回复图文\文本、推送消息的实用微信类php代码
Jun 28 PHP
PHP正则匹配日期和时间(时间戳转换)的实例代码
Dec 14 PHP
PHP简单实现合并2个数字键数组值的方法
May 30 PHP
php实现微信支付之现金红包
May 30 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
正则表达式语法
2006/10/09 Javascript
php页面防重复提交方法总结
2013/11/25 PHP
php cli换行示例
2014/04/22 PHP
thinkphp中session和cookie无效的解决方法
2014/12/19 PHP
Symfony2实现从数据库获取数据的方法小结
2016/03/18 PHP
jQuery-Tools-overlay 使用介绍
2012/07/14 Javascript
模拟一个类似百度google的模糊搜索下拉列表
2014/04/15 Javascript
JQuery中Bind()事件用法分析
2015/05/05 Javascript
JavaScript对Cookie进行读写操作实例
2015/07/25 Javascript
JS组件Bootstrap实现下拉菜单效果代码
2016/04/26 Javascript
vue.js移动端app之上拉加载以及下拉刷新实战
2017/09/11 Javascript
分析javascript中9 个常见错误阻碍你进步
2017/09/18 Javascript
Js中async/await的执行顺序详解
2017/09/22 Javascript
vue组件watch属性实例讲解
2017/11/07 Javascript
利用Console来Debug的10个高级技巧汇总
2018/03/26 Javascript
Angular6笔记之封装http的示例代码
2018/07/27 Javascript
利用React Router4实现的服务端直出渲染(SSR)
2019/01/07 Javascript
微信小程序实现分享朋友圈的图片功能示例
2019/01/18 Javascript
Koa从零搭建到Api实现项目的搭建方法
2019/07/30 Javascript
vue实现数字动态翻牌的效果(开箱即用)
2019/12/08 Javascript
一分钟学会JavaScript中的try-catch
2020/12/14 Javascript
[03:09]2014DOTA2国际邀请赛 Mushi前队友送上祝福
2014/07/12 DOTA
对Python中gensim库word2vec的使用详解
2018/05/08 Python
Tensorflow中使用tfrecord方式读取数据的方法
2018/06/19 Python
我们为什么要减少Python中循环的使用
2019/07/10 Python
Python内置加密模块用法解析
2019/11/25 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
2020/06/05 Python
python爬虫请求头的使用
2020/12/01 Python
Blue Nile中国官网:全球知名的钻石和珠宝网络零售商
2020/03/22 全球购物
雅虎笔试题(字符串操作)
2015/03/24 面试题
怎样在程序里获得一个空指针
2015/01/24 面试题
请假条标准格式规范
2014/04/10 职场文书
开展党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
JVM入门之类加载与字节码技术(类加载与类的加载器)
2021/06/15 Java/Android
一小时学会TensorFlow2之基本操作2实例代码
2021/09/04 Python
阿里云日志过滤器配置日志服务
2022/04/09 Servers