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获取mysql字段名称和其它信息的例子
Apr 14 PHP
ThinkPHP实现支付宝接口功能实例
Dec 02 PHP
php线性表的入栈与出栈实例分析
Jun 12 PHP
PHP常用技巧汇总
Mar 04 PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
Jul 10 PHP
PHP基于迭代实现文件夹复制、删除、查看大小等操作的方法
Aug 11 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
Nov 17 PHP
PHP实现正则表达式分组捕获操作示例
Feb 03 PHP
php压缩文件夹最新版
Jul 18 PHP
PHP进阶学习之垃圾回收机制详解
Jun 18 PHP
PHPExcel实现的读取多工作表操作示例
Apr 14 PHP
php中Swoole的热更新实现代码实例
Mar 04 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
mod_php、FastCGI、PHP-FPM等PHP运行方式对比
2015/07/02 PHP
msn上的tab功能Firefox对childNodes处理的一个BUG
2008/01/21 Javascript
Javascript的常规数组和关联数组对比小结
2012/05/24 Javascript
jquery text(),val(),html()方法区别总结
2013/11/04 Javascript
jQuery Migrate 1.1.0 Released 注意事项
2014/06/14 Javascript
jQuery中:image选择器用法实例
2015/01/03 Javascript
JS解决移动web开发手机输入框弹出的问题
2017/03/31 Javascript
基于angular-utils-ui-breadcrumbs使用心得(分享)
2017/11/03 Javascript
javaScript之split与join的区别(详解)
2017/11/08 Javascript
vue axios登录请求拦截器
2018/04/02 Javascript
JS实现判断图片是否加载完成的方法分析
2018/07/31 Javascript
vue2.0 中使用transition实现动画效果使用心得
2018/08/13 Javascript
vue 公共列表选择组件,引用Vant-UI的样式方式
2020/11/02 Javascript
python内存管理分析
2015/04/08 Python
python常用函数详解
2016/09/13 Python
Python中查看文件名和文件路径
2017/03/31 Python
Mac下Anaconda的安装和使用教程
2018/11/29 Python
Python 脚本获取ES 存储容量的实例
2018/12/27 Python
使用python serial 获取所有的串口名称的实例
2019/07/02 Python
Python计算两个矩形重合面积代码实例
2019/09/16 Python
如何在django中运行scrapy框架
2020/04/22 Python
pycharm中使用request和Pytest进行接口测试的方法
2020/07/31 Python
利用python汇总统计多张Excel
2020/09/22 Python
python向企业微信发送文字和图片消息的示例
2020/09/28 Python
Python Selenium操作Cookie的实例方法
2021/02/28 Python
一款纯css3实现的鼠标经过按钮特效教程
2014/11/09 HTML / CSS
Bose美国官网:购买Bose耳机和音箱
2019/03/10 全球购物
写一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数
2016/04/13 面试题
实习教师自我鉴定
2013/09/27 职场文书
标准版离职证明书
2014/09/12 职场文书
2014镇副书记群众路线专题民主生活会思想汇报
2014/09/23 职场文书
2014向国旗敬礼网上签名活动总结
2014/09/27 职场文书
2014年教师工作总结
2014/11/10 职场文书
2016年质量月活动总结报告
2016/04/05 职场文书
python如何查找列表中元素的位置
2022/05/30 Python
html用代码制作虚线框怎么做? dw制作虚线圆圈的技巧
2022/12/24 HTML / CSS