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 5.0对象模型深度探索之绑定
Sep 05 PHP
php 验证码制作(网树注释思想)
Jul 20 PHP
php $_SERVER当前完整url的写法
Nov 12 PHP
非常好用的两个PHP函数 serialize()和unserialize()
Feb 04 PHP
php生成随机密码自定义函数代码(简单快速)
May 10 PHP
destoon实现调用图文新闻的方法
Aug 21 PHP
ThinkPHP 表单自动验证运用示例
Oct 13 PHP
简单说说PHP优化那些事(经验分享)
Nov 27 PHP
ThinkPHP实现支付宝接口功能实例
Dec 02 PHP
php正则表达式基本知识与应用详解【经典教程】
Apr 17 PHP
利用PHP_XLSXWriter代替PHPExcel的方法示例
Jul 16 PHP
Win10 下安装配置IIS + MySQL + nginx + php7.1.7
Aug 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
PHP+DBM的同学录程序(4)
2006/10/09 PHP
PHP 分页原理分析,大家可以看看
2009/12/21 PHP
php中strstr、strrchr、substr、stristr四个函数的区别总结
2014/09/22 PHP
PHP表单验证内容是否为空的实现代码
2016/11/14 PHP
PHP实现创建微信自定义菜单的方法示例
2017/07/14 PHP
ext jquery 简单比较
2010/04/07 Javascript
JavaScript实用技巧(一)
2010/08/16 Javascript
IE的事件传递-event.cancelBubble示例介绍
2014/01/12 Javascript
JavaScript获得url查询参数的方法
2015/07/02 Javascript
基于JavaScript短信验证码如何实现
2016/01/24 Javascript
基于HTML+CSS+JS实现增加删除修改tab导航特效代码
2016/08/05 Javascript
jQuery Easyui快速入门教程
2016/08/21 Javascript
微信小程序 Image API实例详解
2016/09/30 Javascript
使用 Vue.js 仿百度搜索框的实例代码
2017/05/09 Javascript
jQuery实现表格冻结顶栏效果
2017/08/20 jQuery
详解React中传入组件的props改变时更新组件的几种实现方法
2018/09/13 Javascript
Angular6 Filter实现页面搜索的示例代码
2018/12/02 Javascript
Websocket 向指定用户发消息的方法
2020/01/09 Javascript
详解vue组件之间的通信
2020/08/30 Javascript
在antd4.0中Form使用initialValue操作
2020/11/02 Javascript
Python 实现 贪吃蛇大作战 代码分享
2016/09/07 Python
python自动发邮件库yagmail的示例代码
2018/02/23 Python
使用k8s部署Django项目的方法步骤
2019/01/14 Python
Python基础学习之函数方法实例详解
2019/06/18 Python
Django REST framework内置路由用法
2019/07/26 Python
python命令 -u参数用法解析
2019/10/24 Python
Python 实现加密过的PDF文件转WORD格式
2020/02/04 Python
西班牙英格列斯百货英国官网:El Corte Inglés英国
2017/10/30 全球购物
美国围栏公司:Walpole Outdoors
2019/11/19 全球购物
什么是java序列化,如何实现java序列化
2012/11/14 面试题
SQL Server的固定数据库角色都有哪些?对应的服务器权限有哪些?
2013/05/18 面试题
北京RT科技有限公司.net工程师面试题
2013/02/15 面试题
学习十八届三中全会精神实施方案
2014/02/17 职场文书
《燕子专列》教学反思
2014/02/21 职场文书
国庆节标语大全
2014/10/08 职场文书
Python读写yaml文件
2022/03/20 Python