1.什么是smarty

Smarty是一个php模板引擎。更准确的说,它分开了逻辑程序和外在的内容,提供了一种易于管理的方法。可以描述为应用程序员和美工扮演了不同的角色,因为在大多数情况下,他们不可能是同一个人。

Smarty总的设计理念就是分离业务逻辑和表现逻辑。

Smarty的优点

速度快:smarty的编译性,使smarty调用编译后的文件而不每次都调用模板文件

插件:smarty可以自己定义丰富的插件

在smarty中有自己的丰富的 *模版* 控制的结构--->模版标签

smarty经过编译,缓存后平均运行速度要快

Smarty的缺点

中小型的项目不适合

实时更新数据的网站中不适用

第一次运行的时候 编译需要时间

2.smarty的使用

a.libs目录 复制到你smarty1/thinksite/  更名为smarty

SmartyBC.class.php smarty的解析类文件

Smarty.class.php smarty的核心类文件

/plugins smarty的插件目录

/sysplugins smarry的核心插件目录

thinksite/smarty.inc.php smarty初始化文件

将smarty中Smarty.class.php引入到smarty.inc.php

require_once ‘./smarty/Smarty.class.php’;//SmartyBC.class.php支持2.X和3.x的所有标签

实例化smartyBC解析类 创建smarty对象 $smarty = new smarty;

smarty运行环境的配置

$smarty->template_dir = "./Tpl"; //配置模版目录

$smarty->compile_dir = "./comp"; //配置编译目录;编译文件: 通过模板引擎将模板生成的php+html的混合写

$smarty->cache_dir = "./cache"; //配置缓存目录;缓存文件: 通过模板引擎将模板生成的纯的HTML文件

$smarty->config_dir = "./conf"; //配置前台样式配置文件的目录

$smarty->left_delimiter = "{"; //配置模版标签的左边界符

$smarty->right_delimiter= "}";//配置模版标签的右边界符 

$smarty->caching = true/false; //是否开启缓存

$smarty->cache_lifetime = 10; //缓存的有效时间 单位: S

使用smarty对象调用模版方法 $smarty->display(模版文件名); //在php页面调用模版页面

调用模板: index.html index.tpl index.dwt (dreamware) $smarty->display("模板文件名.后缀");

四、Smarty具体的使用方法

PHP页面分配给模版中的数据 $smarty->assign("tmp_var",php_var|data);

tmp_var: 在模版中变量名

PHP数据|变量: 具体的数据

在模版中具体显示数据:{$tmp_var}

也可以使模版的标签不解析,原样输出

{literal} {$tmp_var}:smarty标签不会被解析{$tmp_var} {/literal}

手动修改模版的左右边界界符 默认: { }

$smarty -> left_delimiter = "{@"; {! $smarty -> right_delimiter ="@}"; !}

smarty模版中的注释(与HTML的注释的区别): html注释在页面源码中可见,而smarty注释则不能

{* xxxxxxxxxx *}

五、Smarty 模版中的变量类型

HP页面中的变量 (assign) 也就是assign方法传递过来的变量,使用方法和php一样,带$ 略有不同的是对数组的处理,可以使用索引,也可以是使用特殊符号“.” 使用方式: <h3>这是{$arr[0]}</h3>或<h3>这是{$arr.0}</h3>

保留变量 相当于PHP中的预定义变量。在Smarty模版中使用保留变量的时候不需要使用assign方法传值,而只需要直接调用变量名就可以了。

列如:get、post、server、session、cookie、request、config、const、now $smarty.now = time()

使用方式:$smarty.var 如: 当前时间{$smarty.now} 当前session里面的user值{$smarty.session.user}

 

从配置文件中读取的数据 Smarty模版也可以通过配置文件来赋值,配置文件的写法 格式:

[sectionname] 属性名=属性值 属性名=属性值 EG: [block1] color=red Size=1

而要想使用配置文件里面的信息,必须先引入配置文件 引入配置文件的格式

{config_load file="xxx.conf" section=block1’} $smarty->configload("title.conf","type1"); $smarty->getconfigvars()

注意:配置文件直接写文件名即可 使用配置文件配置的量 使用配置文件中的变量的格式有2种

使用#,将变量名置于两个#之间就可以像普通变量一样调用配置文件的内容 {#title#}

使用保留变量中的$smarty.config来调用配置文件里面的配置项 {$smarty.config.color}

 

smarty模板内定义的局部变量[临时变量] 

{assign var="变量名" value="值"}

{assign “变量名” “变量值”}

{$var = value}

使用形式同php分配变量一样

posted on 2017-10-18 23:06  顾君临  阅读(89)  评论(0)    收藏  举报