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&amp;mysql(五)
Oct 09 PHP
PHP Ajax中文乱码问题解决方法
Feb 27 PHP
php 缩略图实现函数代码
Jun 23 PHP
浅析PHP微信支付通知的处理方式
May 25 PHP
解密ThinkPHP3.1.2版本之模块和操作映射
Jun 19 PHP
php操作XML、读取数据和写入数据的实现代码
Aug 15 PHP
php实现通用的信用卡验证类
Mar 24 PHP
php中文验证码实现方法
Jun 18 PHP
通过修改配置真正解决php文件上传大小限制问题(nginx+php)
Sep 23 PHP
THINKPHP截取中文字符串函数实例代码
Mar 20 PHP
浅谈PHP中如何实现Hook机制
Nov 14 PHP
PHP如何解决微信文章图片防盗链
Dec 09 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
使用dump函数,给php加断点测试
2013/06/25 PHP
浅谈php正则表达式中的非贪婪模式匹配的使用
2014/11/25 PHP
PHP的Socket网络编程入门指引
2015/08/11 PHP
ThinkPHP 3.2.2实现事务操作的方法
2017/05/05 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
PHP PDOStatement::bindColumn讲解
2019/01/30 PHP
PHP crypt()函数的用法讲解
2019/02/15 PHP
PHP中$GLOBALS与global的区别详解
2019/03/21 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
2019/04/23 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
2019/10/08 PHP
Yii框架组件的事件机制原理与用法分析
2020/04/07 PHP
JQuery 无废话系列教程(一) jquery入门 [推荐]
2009/06/23 Javascript
表单验证的完整应用案例探讨
2013/03/29 Javascript
纯JS实现根据CSS的class选择DOM
2014/03/22 Javascript
node.js中的fs.writeFileSync方法使用说明
2014/12/14 Javascript
自己动手写的javascript前端等待控件
2015/10/30 Javascript
极力推荐一款小巧玲珑的可视化编辑器bootstrap-wysiwyg
2016/05/27 Javascript
javascript弹出带文字信息的提示框效果
2016/07/19 Javascript
webpack之devtool详解
2018/02/10 Javascript
扫微信小程序码实现网站登陆实现解析
2019/08/20 Javascript
[03:00]《DAC最前线》之欧美新秀VS老将
2015/02/01 DOTA
[01:09:16]DOTA2-DPC中国联赛 正赛 SAG vs Dynasty BO3 第一场 1月25日
2021/03/11 DOTA
python翻译软件实现代码(使用google api完成)
2013/11/26 Python
Python中处理时间的几种方法小结
2015/04/09 Python
pandas中的series数据类型详解
2019/07/06 Python
opencv python Canny边缘提取实现过程解析
2020/02/03 Python
什么是Python中的匿名函数
2020/06/02 Python
Python实现http接口自动化测试的示例代码
2020/10/09 Python
纯CSS3实现漂亮的input输入框动画样式库(Text input love)
2018/12/29 HTML / CSS
Python中如何定义一个函数
2016/09/06 面试题
函授本科毕业生自我鉴定
2013/10/16 职场文书
教师自荐信范文
2013/12/09 职场文书
国庆促销活动总结
2014/08/29 职场文书
个人公司授权委托书范本
2014/10/12 职场文书
个人学习群众路线心得体会
2014/11/05 职场文书
详解Python小数据池和代码块缓存机制
2021/04/07 Python