网站地图    收藏   

主页 > 后端 > php资料库 >

Smarty的缓存组_自学php网

来源:自学PHP网    时间:2014-12-04 22:12 作者: 阅读:

[导读] 通过设置$cache_id 组,你可以完成更精密的分组。该方法是通过在$cache_id 值中用|对每个子分组加以分割而实现的。你想要多少子分组就有多少。 clear_cache(null,'a|b|c') 可以被理解为删除文...

通过设置$cache_id 组,你可以完成更精密的分组。该方法是通过在$cache_id 值中用“|”对每个子分组加以分割而实现的。你想要多少子分组就有多少。

 

 

clear_cache(null,'a|b|c') 可以被理解为删除文件'/a/b/c/*' 。clear_cache(null,'a|b') 类似于删除文件'/a/b/*' 。

 

如果你指定一个$compile_id ,例如clear_cache(null,'a|b','foo') ,它被理解为一个附加的缓存组:'/a/b/c/foo/' 。

 

如果你指定一个模板名,例如clear_cache('foo.tpl','a|b|c') ,那么Smarty会尝试删除'/a/b/c/foo.tpl' 。

 

你不可以在多个缓存组下删除一个特定的模板名,如'/a/b/*/foo.tpl' ,缓存组只能从左到右工作。你必须将你的模板分组到一个单一缓存组继承中,才能将它们作为一个组而删除。

 

缓存分组不应与你的模板目录继承相混淆,缓存组根本不知道你的模板是什么结构。比如说,你有一个模板结构形如themes/blue/index.tpl ,而你想要清除"blue"主题下所有的缓存文件,那么你应该创建一个缓存组结构来模拟你的模板文件结构,诸如display('themes/blue/index.tpl','themes|blue') ,然后用clear_cache(null,'themes|blue') 将它们加以清除。

 

 

例子14-9. $cache_id组


<?php
require('Smarty.class.php');
$smarty = new Smarty;

$smarty->caching = true;

// 清除所有以'sports|basketball'作为头两个cache_id组的缓存
$smarty->clear_cache(null,'sports|basketball');

// 清除所有以"sports"作为第一个cache_id组的缓存。这将
// 包括"sports|basketball"或者"sports|(anything)|(anything)|(anything)|..."
$smarty->clear_cache(null,'sports');

// 清除foo.tpl的缓存文件,而其cache_id为"sports|basketball"
$smarty->clear_cache('foo.tpl','sports|basketball');

$smarty->display('index.tpl','sports|basketball');
?>
 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论