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 相关文章推荐
一个数据采集类
Feb 14 PHP
PHP中几个常用的魔术常量
Feb 23 PHP
php过滤敏感词的示例
Mar 31 PHP
PHP冒泡算法详解(递归实现)
Nov 10 PHP
phpcms手机内容页面添加上一篇和下一篇
Jun 05 PHP
php简单判断两个字符串是否相等的方法
Jul 13 PHP
超详细的php用户注册页面填写信息完整实例(附源码)
Nov 17 PHP
php实现搜索类封装示例
Mar 31 PHP
php curl常用的5个经典例子
Jan 20 PHP
PHP简单留言本功能实现代码
Jun 09 PHP
PHP的PDO事务与自动提交
Jan 24 PHP
PHP 裁剪图片
Mar 09 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
WIN8.1下搭建PHP5.6环境
2015/04/29 PHP
Laravel框架实现抢红包功能示例
2019/10/31 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
2019/11/14 PHP
PHP语言对接抖音快手小红书视频/图片去水印API接口源码
2020/08/11 PHP
从父页面读取和操作iframe中内容方法
2009/07/25 Javascript
xml转json的js代码
2012/08/28 Javascript
jquery和javascript的区别(常用方法比较)
2013/07/04 Javascript
利用JS解决ie6不支持max-width,max-height问题的方法
2014/01/02 Javascript
jQuery带箭头提示框tooltips插件集锦
2014/11/17 Javascript
JS通过Cookie判断页面是否为首次打开
2016/02/05 Javascript
Three.js学习之Lamber材质和Phong材质
2016/08/04 Javascript
jQuery实现鼠标悬停3d菜单展开动画效果
2017/01/19 Javascript
js canvas实现擦除效果示例代码
2017/04/26 Javascript
配置node服务器并且链接微信公众号接口配置步骤详解
2019/06/21 Javascript
基于iview-admin实现动态路由的示例代码
2019/10/02 Javascript
Python栈类实例分析
2015/06/15 Python
深入解析Python中的list列表及其切片和迭代操作
2016/03/13 Python
Python自定义进程池实例分析【生产者、消费者模型问题】
2016/09/19 Python
python条件变量之生产者与消费者操作实例分析
2017/03/22 Python
详解Python中的format格式化函数的使用方法
2019/11/20 Python
Python利用逻辑回归分类实现模板
2020/02/15 Python
Python中and和or如何使用
2020/05/28 Python
详解Python中的路径问题
2020/09/02 Python
Python判断变量是否是None写法代码实例
2020/10/09 Python
什么是CSS3 HSLA色彩模式?HSLA模拟渐变色条
2016/04/26 HTML / CSS
HTML5添加鼠标悬浮音响效果不使用FLASH
2014/04/23 HTML / CSS
使用phonegap创建联系人的实现方法
2017/03/30 HTML / CSS
荷兰本土平价百货:HEMA
2017/10/23 全球购物
波兰最大的儿童服装连锁店之一:5.10.15.
2018/02/11 全球购物
南非最大的在线时尚商店:Zando
2019/07/21 全球购物
市场营销管理制度
2014/01/29 职场文书
团委竞选演讲稿
2014/04/24 职场文书
2014年销售工作总结范文
2014/12/01 职场文书
2015年房产销售工作总结范文
2015/05/22 职场文书
《我的长生果》教学反思
2016/02/20 职场文书
Java实现字符串转为驼峰格式的方法详解
2022/07/07 Java/Android