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 相关文章推荐
模仿OSO的论坛(一)
Oct 09 PHP
安装APACHE
Jan 15 PHP
基于PHP Web开发MVC框架的Smarty使用说明
Apr 19 PHP
LotusPhp笔记之:基于ObjectUtil组件的使用分析
May 06 PHP
php5.5中类级别的常量使用介绍
Oct 02 PHP
php环境套包 dedeampz 伪静态设置示例
Mar 26 PHP
php中return的用法实例分析
Feb 28 PHP
PHP使用mysqldump命令导出数据库
Apr 14 PHP
PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】
Oct 07 PHP
php命令行写shell实例详解
Jul 19 PHP
PHP7 echo和print语句实例用法
Feb 15 PHP
php session_decode函数用法讲解
May 26 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
模仿OSO的论坛(三)
2006/10/09 PHP
使用 php4 加速 web 传输
2006/10/09 PHP
把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
2011/06/24 PHP
深入浅析php json 格式控制
2015/12/24 PHP
ThinkPHP框架安全实现分析
2016/03/14 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
PHP数组常用函数实例小结
2018/08/20 PHP
tp5框架使用composer实现日志记录功能示例
2019/01/10 PHP
PHP利用DWZ.CN服务生成短网址
2019/08/11 PHP
laravel框架的安装与路由实例分析
2019/10/11 PHP
jQuery 判断元素上是否绑定了事件
2009/10/28 Javascript
jquery ajax提交整个表单元素的快捷办法
2013/03/27 Javascript
js图片向右一张张滚动效果实例代码
2013/11/23 Javascript
javascript中数组的冒泡排序使用示例
2013/12/18 Javascript
JS获取当前日期时间并定时刷新示例
2021/03/04 Javascript
通过JS来动态的修改url,实现对url的增删查改
2014/09/01 Javascript
MVVM模式中ViewModel和View、Model有什么区别?
2015/06/19 Javascript
原生js页面滚动延迟加载图片
2015/12/20 Javascript
jQuery实现ajax无刷新分页页码控件
2017/02/28 Javascript
webpack配置打包后图片路径出错的解决
2018/04/26 Javascript
解决bootstrap模态框数据缓存的问题方法
2018/08/10 Javascript
jQuery实现的淡入淡出图片轮播效果示例
2018/08/29 jQuery
vue实现短信验证码登录功能(流程详解)
2019/12/10 Javascript
python用pandas数据加载、存储与文件格式的实例
2018/12/07 Python
Flask核心机制之上下文源码剖析
2018/12/25 Python
Python函数中的可变长参数详解
2019/09/12 Python
Python 寻找局部最高点的实现
2019/12/05 Python
纯css3无js实现的Android Logo(有简单动画)
2013/01/21 HTML / CSS
Microsoft新加坡官方网站:购买微软最新软件和技术产品
2016/10/28 全球购物
英国团购网站:Groupon英国
2017/11/28 全球购物
The Outnet亚太地区:折扣设计师时装店
2019/12/05 全球购物
医院护士求职自荐信格式
2013/09/21 职场文书
体育老师的教学自我评价分享
2013/11/19 职场文书
合作经营协议书
2014/04/17 职场文书
公务员爱岗敬业演讲稿
2014/08/26 职场文书
领导班子四风对照检查材料思想汇报
2014/09/26 职场文书