Smarty和配置

时间:2013-10-18 07:03:54

标签: configuration smarty

我对智能优化有一些疑问。

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

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

还有别的吗?

2)我经常看到:

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

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

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

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

提前致谢

1 个答案:

答案 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');
?>