我对智能优化有一些疑问。
1)我是新手使用smarty,我想知道,如果我想建立一个网站,我需要什么配置?我听说过:
$smarty->setTemplaceDir(..);
$smarty->caching=1;
还有别的吗?
2)我经常看到:
$smarty->display("index.tpl", $var);
第二个参数是什么? 这是做同样的事情:
$smarty->assign($var);
$smarty->display("index.html");
似乎第二个param $ var用于最佳缓存优化,不是吗?
提前致谢
答案 0 :(得分:1)
所有这些都记录在http://www.smarty.net/。为了满足您的需求,我建议您阅读以下方法:
setCaching
setCacheLifetime
setTemplateDir
setCacheDir
setCompileDir
addPluginsDir
同样有趣的可能是loadFilter('output','trimwhitespace')
和escape_html
。显示的第二个参数是cache_id。当您想要为一个模板或模板堆栈存储多个缓存时,它很有用。例如,如果您显示用户配置文件页面并且cache_id设置为用户唯一标识符(用户ID或其他内容),那么smarty将为同一模板的每个用户创建一个缓存文件。这也可以通过nocache
部分/修饰符来解决。在 my 结论中,当脚本执行需要很长时间而不进行缓存时,最好使用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');
?>