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分配变量一样
浙公网安备 33010602011771号