标签:
smarty3笔记
1、Samrty.class.php 的compile_dir 和template_dir类属性 是private的,setTemplateDir和setCompileDir类方法是public的,可以通过public的修改private的
class MySmarty extends Smarty{
public function __construct(){
parent::__construct();
}
$this->setTemplateDir();
$this->setCompileDir();
}
2、smarty既能取值也能赋值,{$smarty.name},{$smarty.name="bob"}
3、
$smarty->template_dir = ROOT . ‘view/smarty/templeate‘; $smarty->compile_dir = ROOT . ‘view/smarty/compile‘; $smarty->caching = true; $smarty->cache_lifetime = 3600; $smarty->cache_dir = ROOT . ‘view/smarty/cache‘; $smarty->setTemplateDir(ROOT . ‘view/smarty/templeate‘); $smarty->setCompileDir(ROOT . ‘view/smarty/compile‘); $smarty->setCaching(Smarty::CACHING_LIFETIME_CURRENT); $smarty->setCacheDir(ROOT . ‘view/smarty/cache‘); $smarty->setCacheLifetime(100);
$smarty->clearCache(); $smarty->clearAllCache();
4.smarty.class.php
4.1:DIRECTORY_SEPARATOR--php系统内置变量用于不同的操作系统显示不同的目录分隔符,在window里输出\
const DIR_SEP = DIRECTORY_SEPARATOR;// 路径分割 win下\ linux下/
private function __construct()
{
$this->_options = array(
‘template_dir‘ => ‘templates‘ . self::DIR_SEP, //模板文件所在目录
‘cache_dir‘ => ‘templates‘ . self::DIR_SEP . ‘cache‘ . self::DIR_SEP, //缓存文件存放目录
);
}
42.:PATH_SEPARATOR-路径分隔符,在win下是;在linux下是:
5.缓存
5.1开启-缓存可以通过设置 $caching为:Smarty::CACHING_LIFETIME_CURRENT 或 Smarty::CACHING_LIFETIME_SAVED来开启。
$cache_lifetime默认是一小时,Smarty::CACHING_LIFETIME_SAVED可以让每个模板配置不同的缓存时间
6.局部不缓存
6.1模板区域不缓存{nocache}{$smarty.now|data_format}{/nocache}
6.2标签不缓存{$smarty.now|data_format nocache}
6.3变量不缓存$smarty->assign(‘data‘,time(),true);
6.4插件的不缓存
7.单页面多缓存
通过display或者fetch的第二个参数来设置根据不同$id生成不同的缓存
<?php
require(‘Smarty.class.php‘);
$smarty = new Smarty;
$smarty->setCaching(Smarty::CACHING_LIFETIME_CURRENT);
$my_cache_id = $_GET[‘article_id‘];
if(!$smarty->isCached(‘index.tpl‘,$my_cache_id)) {
// 没有缓存,这里将进行一些赋值操作
$contents = get_database_contents();
$smarty->assign($contents);
}
$smarty->display(‘index.tpl‘,$my_cache_id);
?>
标签:
原文地址:http://www.cnblogs.com/fang8580/p/3912657.html