所有这些都记录在http://www.smarty.net/上。为了设置您的需求,我建议您阅读以下方法:
setCaching
setCacheLifetime
setTemplateDir
setCacheDir
setCompileDir
addPluginsDir
同样有趣的可能是loadFilter('output','trimwhitespace')
和escape_html
。display的第二个参数是cache_id。当您想为一个模板或模板堆栈存储多个缓存时,它很有帮助。例如,如果您显示一个用户配置文件页面,并且 cache_id 设置为用户唯一标识符(用户 id 或其他东西),那么 smarty 将为同一模板的每个用户创建一个缓存文件。这也可以通过nocache
部分/修饰符来解决。在我的结论中,当脚本执行需要很长时间而没有缓存时,最好使用 cache_id 。您也可以设置默认的 cache_id。只是$smartyobject->cache_id = *somevalue*
。这在您与 结合使用时很有帮助isCached
,因为此方法也接受 cache_id。
例子
<?php
$smarty = new Smarty;
//setup directories here...
$smarty->setCaching(Smarty::CACHING_LIFETIME_CURRENT);
$smarty->setCacheLifetime(-1);
$userid = $_GET['userid'];
$smarty->cache_id = (string)$userid;
if(!$smarty->isCached('profile.tpl'))
$smarty->assign('userData','some data');
$smarty->display('profile.tpl');
?>