smarty3-笔记

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);
?>
上一篇:支持异步通知的globalfifo平台设备驱动程序及其测试代码


下一篇:怎样写一个与Win8 IE11兼容的标准BHO?