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在各种web服务器的运行模式详解
Jun 03 PHP
PHP中几个可以提高运行效率的代码写法、技巧分享
Aug 21 PHP
php多次include后导致全局变量global失效的解决方法
Feb 28 PHP
PHP连接操作access数据库实例
Mar 30 PHP
Laravel 中获取上一篇和下一篇数据
Jul 27 PHP
php生成与读取excel文件
Oct 14 PHP
详解php中serialize()和unserialize()函数
Jul 08 PHP
PHP bin2hex()函数基础实例讲解
Feb 11 PHP
PHP信号处理机制的操作代码讲解
Apr 19 PHP
PHP实现八皇后算法
May 06 PHP
Laravel框架中缓存的使用方法分析
Sep 06 PHP
详解阿里云视频直播PHP-SDK接入教程
Jul 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
thinkphp数据查询和遍历数组实例
2014/11/28 PHP
PHP实现抓取HTTPS内容
2014/12/01 PHP
Yii框架页面渲染操作实例详解
2019/07/19 PHP
js跨域和ajax 跨域问题的实现思路
2009/09/05 Javascript
解决iframe的frameborder在chrome/ff/ie下的差异
2010/08/12 Javascript
MultiSelect左右选择控件的设计与实现介绍
2013/06/08 Javascript
jquery读取xml文件实现省市县三级联动的方法
2015/05/29 Javascript
jQuery入门基础知识学习指南
2015/08/14 Javascript
Js与Jq获取浏览器和对象值的方法
2016/03/18 Javascript
jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载)
2016/04/08 Javascript
JS函数的定义与调用方法推荐
2016/05/12 Javascript
AngularJS入门教程之AngularJS 模板
2016/08/18 Javascript
浅析上传头像示例及其注意事项
2016/12/14 Javascript
微信小程序开发之数据存储 参数传递 数据缓存
2017/04/13 Javascript
angular ng-click防止重复提交实例
2017/06/16 Javascript
js防刷新的倒计时代码 js倒计时代码
2017/09/06 Javascript
微信小程序实现MUI数字输入框效果
2018/01/31 Javascript
vue-swiper的使用教程
2018/08/30 Javascript
Vue-router的使用和出现空白页,路由对象属性详解
2018/09/03 Javascript
过滤器vue.filters的使用方法实现
2019/09/18 Javascript
Python continue语句用法实例
2014/03/11 Python
Python中实现常量(Const)功能
2015/01/28 Python
在Python中操作字典之clear()方法的使用
2015/05/21 Python
Python中的Descriptor描述符学习教程
2016/06/02 Python
itchat和matplotlib的结合使用爬取微信信息的实例
2017/08/25 Python
python实现蒙特卡罗方法教程
2019/01/28 Python
Python基本数据结构与用法详解【列表、元组、集合、字典】
2019/03/23 Python
Pyqt QImage 与 np array 转换方法
2019/06/27 Python
python 线性回归分析模型检验标准--拟合优度详解
2020/02/24 Python
Python爬取你好李焕英豆瓣短评生成词云的示例代码
2021/02/24 Python
英国第一职业高尔夫商店:Clickgolf.co.uk
2020/11/18 全球购物
为什么如下的代码int a=100,b=100;long int c=a * b;不能工作
2013/11/29 面试题
计生办班子群众路线教育实践活动个人对照检查材料思想汇报
2014/10/04 职场文书
交警作风整顿剖析材料
2014/10/11 职场文书
社区安全温馨提示语
2015/07/14 职场文书
SQL Server #{}可以防止SQL注入
2022/05/11 SQL Server