Smarty緩存組

2018-12-09 11:36 更新

緩存組

你可以通過(guò)設(shè)置$cache_id更精細(xì)地組織你的緩存。 在$cache_id值中使用豎線|來(lái)設(shè)置緩存組, 同時(shí)你可以根據(jù)需要設(shè)置多個(gè)緩存組。

  • 你可以把緩存組理解成目錄層次結(jié)構(gòu)。 比如緩存組'a|b|c'可以理解成目錄結(jié)構(gòu)'/a/b/c/'。

  • clearCache(null,'a|b|c')相等于刪除文件 '/a/b/c/*'。clearCache(null,'a|b')相等于刪除文件 '/a/b/*'。

  • 如果你按照clearCache(null,'a|b','foo')的方式來(lái)設(shè)置 $compile_id, 那么它將自動(dòng)附帶一個(gè)$compile_id 的緩存組。

  • 如果你按照clearCache('foo.tpl','a|b|c')的方式來(lái)設(shè)置模板名稱, 然后Smarty將試圖刪除'/a/b/c/foo.tpl'。

  • 因?yàn)榫彺娼M是“從左到右”順序刪除緩存的,所以你不能單獨(dú)刪除某個(gè)緩存如'/a/b/*/foo.tpl'。 你可以另外再設(shè)置一個(gè)緩存組來(lái)達(dá)到此目的。

不能混淆緩存組和模板目錄結(jié)構(gòu),緩存組與你的模板層次結(jié)構(gòu)是無(wú)關(guān)的。 比如說(shuō),你有一個(gè)模板文件themes/blue/index.tpl, 然后你想刪除全部帶blue的主題(theme), 這樣你可以參考模板目錄結(jié)構(gòu)來(lái)創(chuàng)建一個(gè)緩存組,如display('themes/blue/index.tpl','themes|blue'), 之后你可以通過(guò)clearCache(null,'themes|blue')來(lái)刪除它們。

Example 15.9. $cache_id 組

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

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

// 刪除全部'sports|basketball'的緩存
$smarty->clearCache(null,'sports|basketball');

// 刪除全部"sports"下的緩存,這里包括了
// "sports|basketball", 或者 "sports|(anything)|(anything)|(anything)|..."等等
$smarty->clearCache(null,'sports');

// 刪除"sports|basketball"下的foo.tpl緩存文件
$smarty->clearCache('foo.tpl','sports|basketball');

$smarty->display('index.tpl','sports|basketball');
?>
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)