smarty局部缓存技术[源码分析]_PHP教程

php中文网
发布: 2016-07-13 17:41:53
原创
1029人浏览过

  之前一直使用其它的模板引擎,今天在听bkjia培训课程的时候,讲到了smarty模板引擎的局部缓存,感觉挺好的,在此结合自身的理解,感慨一翻,要是有什么不对的地方,希望朋友跟贴回复。 大家一起共勉学习。 同时也感谢张老师,为像我们这样的php初学者提供一个非常优秀的学习平台。

  发现smarty是如此强大与神奇的一个东东,使我对它的好感不亚于对以前使用的模板引擎.

  由于我默认是开启smarty的缓存的,但是在些地方的数据是实时更新或者更新较快的,不宜缓存,这样,局部缓存便有用武之地了。

  1,insert 法

  定义一个函数显示时间的:

立即学习PHP免费学习笔记(深入)”;

<ol class="dp-c"><li class="alt"><span><span class="keyword">function</span><span> insert_get_current_time(){  </span></span></li><li><span>    </span><span class="vars">$timestamp</span><span>=</span><span class="func">empty</span><span class="keyword">empty</span><span>(</span><span class="vars">$timestamp</span><span>)?time():</span><span class="vars">$timestamp</span><span>;  </span></li><li class="alt"><span>    </span><span class="vars">$timeoffset</span><span>=(int) </span><span class="string">+8</span><span>;  </span></li><li><span>    </span><span class="keyword">return</span><span> </span><span class="vars">$ret</span><span>=</span><span class="func">gmdate</span><span>(</span><span class="string">"Y-n-j g:ia"</span><span>, </span><span class="vars">$timestamp</span><span> + </span><span class="vars">$timeoffset</span><span> * 3600);  </span></li><li class="alt"><span>} </span></li></ol>
登录后复制

  然后在模板中:

 

存了个图
存了个图

视频图片解析/字幕/剪辑,视频高清保存/图片源图提取

存了个图 17
查看详情 存了个图
<ol class="dp-c"><li class="alt"><span><span>{insert name=</span><span class="string">"get_current_time"</span><span>} </span></span></li></ol>
登录后复制

  这样每次打开页面,显示的都是即时时间,而不是缓存的。注意这里的函数名一定要以insert开头,模板中的name与之对应。

  这种方法简单,但是如果要显示的内容是一大块的,就不宜使用了。

  2,动态block 法

 

<ol class="dp-c"><li class="alt"><span><span class="comment">//部分缓存 </span><span> </span></span></li><li><span class="keyword">function</span><span> smarty_block_nocache(</span><span class="vars">$param</span><span>, </span><span class="vars">$content</span><span>, </span><span class="vars">$smarty</span><span>)  </span></li><li class="alt"><span> {  </span></li><li><span>    </span><span class="keyword">return</span><span> </span><span class="vars">$content</span><span>;  </span></li><li class="alt"><span>}  </span></li><li><span class="vars">$smarty</span><span>->register_block(</span><span class="string">nocache</span><span>, </span><span class="string">smarty_block_nocache</span><span>, false); </span></li></ol>
登录后复制

在模板中:

 

<ol class="dp-c"><li class="alt"><span><span>{nocache}  </span></span></li><li><span>{</span><span class="vars">$smarty</span><span>.now}  </span></li><li class="alt"><span>{/nocache} </span></li></ol>
登录后复制

\

  这样每次刷新页面,显示的时间都是不同的。

  3,插件block 法

  在Smarty/plugins目录下建一个文件

  block.nocache.php 内容如下:

 

<ol class="dp-c"><li class="alt"><span><span><?php   </span></span></li><li><span class="keyword">function</span><span> smarty_block_nocache(</span><span class="vars">$param</span><span>, </span><span class="vars">$content</span><span>, </span><span class="vars">$smarty</span><span>)  </span></li><li class="alt"><span>{  </span></li><li><span>      </span><span class="keyword">return</span><span> </span><span class="vars">$content</span><span>;   </span></li><li class="alt"><span>}    </span></li><li><span>?> </span></li></ol>
登录后复制

  这样做与方法2的效果是一样的,模板中标签也一样。在 php文件中就不必要再register_block了,很方便。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/486092.htmlTechArticle之前一直使用其它的模板引擎,今天在听PHP100培训课程的时候,讲到了smarty模板引擎的局部缓存,感觉挺好的,在此结合自身的理解,感慨...
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号