一、
PHP的
模板系统
最开始的时候PHP开发是采用HTM代码嵌套PHP代码这种方式的。这种方式有很多的问题,比如
页面逻辑难以看清楚,美工容易破坏开发人员的代码等等。
后来出现了模板系统。直观理解模板系统就是将PHP代码和网页代码分开。或者叫做将逻辑层和表现层分开。
PHP有很多的模板系统,比如
phplib,fasttemplate,以及我们今天要说的
smarty
二、为什么选择SMARTY?
选择Smarty的原因如下:
l
官方支持,可靠。
l 功能强大而又不失灵活。
l 编译型模板,保证了速度。
l 提供
cache功能,可以提高网站的访问速度。
三、SMARTY的安装
Smarty的安装比较简单,步骤如下:
1.
下载最新版的Smarty,并解压缩。
2. 解压缩之后有一个libs目录,里面是smarty的核心程序,将它们拷贝到一个目录。
3. 在php程序的开始包含下面的语句:
4. 也可以将上面的语句保存为一个
文件,在每一个php页面开始的时候包含就可以了。
四、SMARTY的工作模式
简单来讲,使用smarty开发的工作模式是这样:
一个PHP页面对应一个模板文件,其目录结构基本上一一对应。
PHP页面负责完成各种各样的逻辑,负责取出页面所需要的
变量数据,赋值给模板系统,然后模板文件通过smarty的语法将变量展示出来。
在模板模板里面,基本上是循环结构,简单的if,else if判断。
有时候为了页面展示的需要,可以在php脚本里面负责完成表现层方面的一些逻辑,两者不是截然分开的。
五、SMARTY之PHP篇
PHP程序包含以下几个步骤:
1. 包含smarty的类库文件。
2. 生成smarty的
实例,并设置好各种参数。
3. 处理各种逻辑,取出变量,进行赋值。
4. 显示模板文件。
六、SMARTY之模板篇
Smarty模板文件实际上就是
html代码,只不过里面包含了一些smarty的标签而已。
l Smarty的标签都是使用{}包含起来。
l {$username}输出在php脚本里面赋值的变量 //$tpl->assign(“username”,”wwccss”)
l {$userinfo.groupid} 通过”.”形式来引用数组的元素。
l {foreach from=$userlist key=key item=user}{$user}{/foreach}循环输出一个数组里面的元素。
l {if $username==”wwccss”}<strong>wwccss</strong>{else}other{/if}简单的逻辑判断。
l {include file=”header.tpl”} 包含其他的文件。
l {$title|upper} 对变量进行处理。分别对应于php里面的函数。
l {literal}{/literal}在这个标签里面可以放置
javascript的代码或者样式表的代码。
l samrty还提供了很多的函数:html_options html_radios html_select_date等等。
七、SMARTY之cache篇
cache是smarty区别于其他模板系统的一个很重要的地方:
1. 设置当前这个页面的缓存时间。
2. 设置当前这个页面的CacheID,模板编号可以使用“|”分组。
3. 判断当前页面有没有被缓存过,如果缓存过,则直接读取缓存文件,没有缓存或者缓存过期,则执行正常的逻辑查找数据,显示页面,同时生成缓存文件。
八、SMARTY之动态内容篇
如果一个页面打开了缓存功能,但同时又想显示动态的内容,可以使用insert函数。
1. 首先需要定义insert函数。
2. 在模板文件中这样
定义;
{insert name=Clickcount Itemname=News IdName=NewsID IdValue=24 script="Insert函数的文件 "}
九、相应资料
smarty的官方网站:
http://smarty.php.net
smarty的
中文手册:
http://www.phpres.com/help/manual/smarty_manual_zh/
smarty实例
教程:
http://bbs.phpres.com/forumdisplay.php?fid=49&page=1
[
本帖最后由 Ajax_chou 于 2007-7-10 19:49 编辑 ]