抛砖引玉系列-smarty缓存控制(1)
smarty提供了强大的缓存功能。但有时我们并不希望整篇文档都被缓存,而是有选择的缓存某一部分内容或某一部分内容不被缓存。例如你在页面上端使用一个带有广告条位置的模板,广告条可以包含任何HTML、图象、FLASH等混合信息. 因此这里不能使用一个静态的链接,同时我们也不希望该广告条被缓存. 这就需要在 insert 函数指定,同时需要一个函数取广告条的内容信息。smarty也提供了这种缓存控制能力。
我们可以使用{insert}使模板的一部分不被缓存
可以使用$smarty->register_function($params,&$smarty)阻止插件从缓存中输出,
还可以使用$smarty->register_block($params,&$smarty)使整篇页面中的某一块不被缓存。
下面我们真对一个简单需求,分别说明这三种控制缓存输出的方法。
需求:被缓存的文档中当前时间不被缓存,随每次刷新而变化。
1、使用insert函数使模板的一部分不被缓存
index.tpl:
index.php
function insert_get_current_time(){
return date("Y-m-d H:m:s");
}
$smarty=new smarty();
$smarty->caching = true;
if(!$smarty->is_cached()){
.......
}
$smarty->display('index.tpl');
注解:
定义一个函数,函数名格式为:inser_name(array $params, object &$smarty),
函数参数可选的,如果在模板的insert方法中需要加入其他属性,就会作为数组传递给用户定义的函数。
如:{insert name='get_current_time' local='zh'}
在get_current_time函数中我们就可以通过$params['local']来获得属性值。
如果在get_current_time函数中需要用到当前smarty对象的方法或属性,就可以通过第二个参数获得。
这时你会发现index.tpl已被缓存,但当前时间却随每次刷新在不断变化。
2、使用register_function阻止插件从缓存中输出
index.tpl:
index.php:
function smarty_function_current_time($params, &$smarty){
return date("Y-m-d H:m:s");
}
$smarty=new smarty();
$smarty->caching = true;
$smarty->register_function('current_time','smarty_function_current_time',false);
if(!$smarty->is_cached()){
.......
}
$smarty->display('index.tpl');
注解:
定义一个函数,函数名格式为:smarty_type_name($params, &$smarty)
type为function
name为用户自定义标签名称,在这里是{current_time}
两个参数是必须的,即使在函数中没有使用也要写上。两个参数的功能同上。
提示:试试键盘 “← →” 可以实现快速翻页
每日精选
-
iQOO Pad Ultra外观揭晓 超轻薄机身,两款配色颜值拉满
iQOO官方释出了“电竞新物种”iQOO Pad Ultra的外观细节,拥有星凯银、末影黑配色,可以满足用户对于风格的不同追求。
-
OriginOS 7体验:美观流畅 AI智能体交互革新
全新OriginOS 7系统延续了美学和流畅度的探索方向,同时紧跟AI发展浪潮,在智能化能力上进一步增强,蓝心小V可处理更复杂任务,推动手机向个人智能助手持续进化。
-
全焦段8K原生实况 vivo X500系列重新定义Live图
在vivo X500系列上,实况照片体验迎来再度迭代,除延续前代无画面跳变、无画面裁切的核心优势之外,还带来四大维度的体验升级。
-
荣耀Magic9系列影像前瞻 从看到听的全面突破
荣耀Robot Phone发布之时,荣耀便同步预告了荣耀Magic9系列的影像实力。该系列不仅落地了与阿莱深度合作的技术成果,在镜头硬件规格与影像功能上也迎来全方位升级。
-
荣耀WIN小平板开启盲约 消息称将搭载OLED超高刷屏
荣耀WIN小平板今日正式开启盲约。根据预约海报来看,荣耀WIN小平板镜头Deco区域配备红色的WIN印字。
-
筑基融合协同赋能 2026算力网发展大会在京隆重举办
2026算力网发展大会暨第四届AI算力产业博览会在北京举行,本次盛会精准对接国家算力基础设施建设战略要求,有效打通了算力领域技术、产业、生态壁垒,凝聚了全国算力产业发展共识,为我国全国一体化算力网络提质增效、算力产业高质量发展、新质生产力培育壮大提供有力支撑。
-
-
佳能发布Dual Pixel 3D Converter软件 可将照片生成3D模型
通过Dual Pixel 3D Converter应用软件,用户可以在保留原有拍摄构图的基础上,将植物、美食等日常拍摄题材生成3D模型,为佳能EOS R系统用户提供拓展照片拍摄、欣赏与创作的新体验。
-
OPPO ColorOS 17发布暨开发者大会
2026 OPPO开发者大会聚焦ColorOS 17、AI技术进展、开放生态共建等议题,并带来最新的平台能力与技术实践。
-
一文读懂天玑9600 Pro 新架构领跑智能体体验
作为天玑首款Pro旗舰,天玑9600 Pro率先采用台积电2nm制程,并以全新AI原生架构重构移动计算,带来双超大核CPU、重构双NPU、神经网络渲染与智能影像等一系列架构级升级。

网友评论