Smarty 图标

您可以根据 商标声明 来使用 Smarty 徽标。

Smarty Template Engine Smarty Template Engine

如需了解赞助、广告、新闻或其他查询信息,请通过以下方式联系我们:

正在使用 Smarty 的网站

广告

缓存组

您可以通过设置 $cache_id 组来进行更精细的分组。在 $cache_id 值中用竖线 | 分隔每个子组即可实现这一目的。您可以拥有任意多个子组。

  • 您可以将缓存组视作目录层次结构。例如,缓存组 'a|b|c' 可以视为目录结构 '/a/b/c/'

  • clearCache(null,'a|b|c') 相当于删除文件 '/a/b/c/*'clearCache(null,'a|b') 相当于删除文件 '/a/b/*'

  • 如果您指定 $compile_id,比如 clearCache(null,'a|b','foo'),它将被视为附加的缓存组 '/a/b/c/foo/'

  • 如果您指定了模板名称,比如 clearCache('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'),然后使用 clearCache(null,'themes|blue') 来清除它们。

示例 15.9 $cache_id

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

$smarty->setCaching(Smarty::CACHING_LIFETIME_CURRENT);

// clear all caches with 'sports|basketball' as the first two cache_id groups
$smarty->clearCache(null,'sports|basketball');

// clear all caches with "sports" as the first cache_id group. This would
// include "sports|basketball", or "sports|(anything)|(anything)|(anything)|..."
$smarty->clearCache(null,'sports');

// clear the foo.tpl cache file with "sports|basketball" as the cache_id
$smarty->clearCache('foo.tpl','sports|basketball');


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