0

我对 smarty 优化有一些疑问。

1)我是使用smarty的新手,我想知道,如果我想做一个网站,我需要什么配置?我听说过:

$smarty->setTemplaceDir(..);
$smarty->caching=1;

还要别的吗 ?

2)我经常看到:

$smarty->display("index.tpl", $var);

第二个参数是什么?做同样的事情:

$smarty->assign($var);
$smarty->display("index.html");

似乎第二个参数 $var 用于最佳缓存优化,不是吗?

提前致谢

4

1 回答 1

1

所有这些都记录在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');
?>
于 2013-10-18T08:52:38.433 回答