一、什么是Smarty?
1.概念:是使用PHP写出来的模板引擎,实现了后台逻辑(*.php)和外在内容(前台页面)分离,将php程序员和美工设计人员进行分离。应用Smarty的网站程序逻辑的改变不会影响美工页面的设计,美工设计从新修改之后不会影响到程序逻辑。
2.优点:
在比较大的项目中才得以体现:当后台数据没有变化的时候,只需一次编译,只有当后台数据发生变化时,页面才需要重新编译。(运行速度快,缓存技术(catch),函数(插件)丰富)
3.不适合使用Smarty的地方:
(1)小项目(美工和后台程序一个人就能实现)
(2)数据需要实时更新时(股市行情)
二、Smarty的安装
安装类似于ecshop。
只需将libs文件夹拷贝到服务器目录下即可
Template是:存放页面模板,路径任意。
Templates_c:存放编译之后的页面模板。(在后台数据发生变化时,打开网钻调用的是编译之后的模板。里面的文件系统自动生成)
Configs:模板所需要的特殊的配置文件
Cache:存放Smarty缓存内的模板(临时)
三.应用Smarty
1.利用php文件引入Smarty.class.phSmarty模板技术
2.创建Smarty对象
3.更改模板存放路径及编译路径(templat_dir compile_dir)
4.修改界定符(left_delimiter right_delimiter)
5.编写模板(*.tpl(就是html))
6.在php文件中用assign方法给模板呢中的变量赋值
7.在php文件中用display方法将模板及数据显示
8.模板中的变量只用于输出,不能赋值
Smarty中的变量
1.模板中变量的生命
一般变量:<{$name}>
数组变量:索引数组和关联数组
索引数组:<{$arrName[row][col]}>
关联数组:<{$arrName.key1.key2}>
对象变量:<{$obj->att}>属性
<{$obj->fun()}>方法
2.给模板分配变量(通过php给模板中的变量赋值)
通过assign
利用foreach和section遍历数组内容
1.Foreach
语法
<{foreach from=要遍历的数组 item=当前指针指向的数组元素的值 key=当前元素的键值 name=当前循环的名称}>
语句
<{foreachelse}>语句2
<{/foreach}>
2.利用section遍历数组
<{section}>
<{/section}>
*不能遍历关联数组
3.
<{if 条件}>语句1
<{elseif 条件2}>语句2
<{else}>语句3
<{/if}>.
1.配置文件:在以.config结尾的记事本中,写入配置文件,在.tpl中通过config_load调用,file属性加入文件名,section加入待分配部分的(局部的)。
2.smarty的内置函数:
①section
②foreach
③now(smarty的时间戳)