Grup Cache
Anda dapat melakukan pengelompokan elaborasi dengan menyiapkan grup
$cache_id. Ini dilakukan dengan memisahkan
setiap sub-grup dengan bar vertikal
| dalam nilai $cache_id.
Anda bisas memiliki sebanyak-banyaknya sub-grup yang anda inginkan.
Anda bisa membayangkan grup cache seperti hirarki direktori. Sebagai
contoh, grup cache 'a|b|c' bisa dibayangkan sebagai
struktur direktori '/a/b/c/'.
clear_cache(null,'a|b|c')
akan seperti menghapus file
'/a/b/c/*'. clear_cache(null,'a|b')
akan seperti menghapus file '/a/b/*'.
Jika anda menetapkan
$compile_id
seperti clear_cache(null,'a|b','foo') ini diperlakukan
sebagai grup cache yang ditambahkan '/a/b/c/foo/'.
Jika anda menetapkan nama template seperti
clear_cache('foo.tpl','a|b|c') maka Smarty akan
mencoba untuk menghapus '/a/b/c/foo.tpl'.
Anda TIDAK BISA menghapus nama template yang ditetapkan di bawah
multipel grup cache seperti '/a/b/*/foo.tpl',
pengelompokan cache HANYA bekerja dari kiri-ke-kanan. Anda perlu
mengelompokan template anda di bawah satu hirarki grup cache
agar bisa membersihkannya sebagai sebuah grup.
Pengelompokan cache seharusnya tidak dibingungkan dengan hirarki
direktori template anda, pengelompokan cache tidak mengetahui bagaiman
template anda dibentuk. Maka sebagai contoh, jika anda mempunyai struktur
template seperti themes/blue/index.tpl dan anda
ingin bisa membersihkan seluruh file cache untuk tema blue,
anda perlu membuat struktur grup cache yang meniru struktur file
template, seperti
display('themes/blue/index.tpl','themes|blue'), lalu
membersihkannya dengan
clear_cache(null,'themes|blue').
$cache_id groups
caching = true;
// membersihkan semua cache dengan 'sports|basketball' sebagai dua grup cache_id pertama
$smarty->clear_cache(null,'sports|basketball');
// bersihkan semua cache dengan "sports" sebagai grup cache_id pertama. Ini akan
// menyertakan "sports|basketball", atau "sports|(anything)|(anything)|(anything)|..."
$smarty->clear_cache(null,'sports');
// bersihkan file cache foo.tpl dengan "sports|basketball" sebagai cache_id
$smarty->clear_cache('foo.tpl','sports|basketball');
$smarty->display('index.tpl','sports|basketball');
?>
]]>