通行证: 用户 密码 网站建设  下载中心 社区论坛 信息公告 MY小屋
联系我们
设为首页
加入收藏

 

QQ,ASP,PHP,JSP,XML,SQL,.Net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | Q Q 专栏 | 建站经验 | 在线工具 | 站长Club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务
当前位置:首页>>编程开发>>PHP专区>>正文 新版上线![旧版]
注:打开慢时请稍等

PHP模板引擎SMARTY

http://www.iyit.net  日期:2006-12-18 15:24:06  来源:  点击:
参加讨论

用PHP实现MVC开发模式的逻辑层和表示层有多种模板引擎可供选择,但是官方引擎SMARTY诞生后,选择就有了变化。它的理念和实现都是相当"前卫"的。本文主要讨论SMARTY之于其他模板引擎的不同特点,简要介绍了该引擎的安装及使用,并用一个小的测试案例对比了SMARTY和PHPLIB template的速度和易用性。
一、MVC需要模板
MVC最早是在SmallTalk语言的开发过程中总结出的一种设计模式,MVC分别代表了"模型"、"视图"和"控制",目的就是让不同的开发角色在大中型项目中各司其职。在网络应用程序的开发中,可以用下图来表示各概念之间的关系。

该图展示了一个简单的WEB应用程序,用户在浏览器上看到信息是数据库服务器上的内容,但在这之前经过了应用服务器加工。开发人员负责的就是建立数据结构、处理数据的逻辑以及表示数据的方法。
96年CGI在中国开始流行的时候,早期的WEB程序员都是从HTML开始自学成材的,在PERL中print一行行的HTML并不是一件难事,但是随着网络的一步步提速,页面大小也从当初的二、三十K暴涨了十倍。写CGI程序就产生了一个迫切的要求:分开PERL和HTML源码。于是,社会进步体现在开发小组内部的分工上。由于美工和程序员对互相的工作并不是十分熟悉,在进行合作的过程中需要用一种约定的"语言"进行交流。
这种语言并不是我们的母语或者英语,术语叫做"模板",逻辑和表示依靠它联系。它是结合了HTML和脚本语言特征的一种表达方式。通过这种方式,表示层可以按照用户所希望的格式来显示经过逻辑层处理过的数据。如果你有Windows平台下MFC的开发经验,那么一定会很熟悉Document/Document Template/View的封装,这就是一个很典型的MVC例子。对于Web应用来说,个人认为J2EE中的EJB/servlets/JSP是最强大的,当然还有简洁优美的Structs。另一个很有名的实现就是COM/DCOM+ASP,这个组合在我国是最多人使用的。
通过几种MVC实现在WEB应用程序里的对比,可以得到一个关于模板的概念:一组插入了HTML的脚本或者说是插入了脚本HTML,通过这种插入的内容来表示变化的数据。下面给出一个模板文件的例子,这个模板经过处理后在浏览器里显示"Hello, world!"

<html>
   <head>
      <title>$greetings</title>
   </head>
   <body>
      $greetings
   <body>
</html>
这里暂且省略处理方式,在后面做专门对比讨论。
二、为什么选SMARTY? 对PHP来说,有很多模板引擎可供选择,比如最早的PHPLIB template和后起之秀Fast template,经过数次升级,已经相当成熟稳定。如果你对目前手中的模板引擎很满意,那么......也请往下看,相信你作为一个自由软件爱好者或者追求效率和优雅的开发者,下面的SMARTY介绍多少会有点意思。
除了个人偏好的影响,我一直倾向于使用官方标准的实现,比如APACHE的XML引擎Axis。好处就是可以获得尽可能好的兼容性(比如早期MFC对于Win3x的兼容性就比其它的应用程序框架好,当然现在各种版本都很完善了)。SMARTY发布之前我一直使用的是PEAR 中的Integrated Template eXtension。这个引擎和PHPLIB template、Fast template几乎是兼容的,从模板的语法到对模板的处理同出一辙:都是将模板读入内存然后调用parse()函数,用数据对预置的标记进行替换。
下面看看SMARTY是怎么做的。接到request后,先判断是否第一次请求该url,如果是,将该url所需的模板文件"编译"成php脚本,然后redirect;如果不是,就是说该url的模板已经被"编译"过了,检查不需要重编译后可以马上redirect,重编译条件可以自己设定为固定时限,默认的是模板文件被修改。
怎么样,看起来是不是有点眼熟?想起来了──这不就是JSP的原理嘛!的确,这种"编译"用在PHP这样的解释性脚本引擎上显得匪夷所思,但是仔细想想,JAVA不也是由JVM解释执行的吗?这就叫"没有做不到,只有想不到"。

本新闻共3页,当前在第1页  1  2  3  


编辑: [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:在PHP世界中选择最合适的模板--比较PHPLIB Template和FastTemplate
下一篇:没有了
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
在PHP世界中选择最合适的模板--比较PHP 剖析PHP中的输出缓冲 Win2000下PHP服务器安装攻略
IIS环境下安装PHP5手记全攻略 PHP5:session会话的使用和分析 PHP和ASP上传漏洞探究
php作wap开发时遇到的问题  我在windows  XP上安装apache2.044+php Apache+php,怎样打开session支持??
在linux中怎么配置pdflib和php  高分! 怎么样同时解释.php和.php3的文件呀,急 PHP 4.1.0 及以后版本使用POST变量的接
Apache2-Win32+PHP的成功安装方法 我只是想在本地机上学习php ,还要安装 装了PHP。运行时出现在以下提示
PHP在Win2003上面怎样安装? php 在Linux 下如何開啟ftp功能 如何屏蔽掉 phpinfo()
php.ini中文版 请问怎样降低php的警告等级? 一个打击了我学习php热情的问题:怎么样
PHP初学者的入门问题 运行php程序会出现乱码是怎么回事?Zen 如何让php拥有root的权限?
最新更新 热点排行 推荐新闻
PHP模板引擎SMARTY
在PHP世界中选择最合适的模板--比较PH
剖析PHP中的输出缓冲
Win2000下PHP服务器安装攻略
IIS环境下安装PHP5手记全攻略
PHP模板引擎SMARTY
在PHP世界中选择最合适的模板--比较PH
剖析PHP中的输出缓冲
新版宠物饥饿值和清洁值计算方式
QQ宠物活跃度增长数据揭密
首次用服务器的站长常犯的错误
如何禁止flash动画的自动跳转
终端服务器超出了最大允许连接数的解决
如何避免出现“终端服务器超出了最大允
 Windows 2003下域服务器的管理与配置
PHP5:session会话的使用和分析
Win2000下PHP服务器安装攻略
IIS环境下安装PHP5手记全攻略
PHP模板引擎SMARTY
在PHP世界中选择最合适的模板--比较PH
最新永久免费网游年列表,免费3d网游
永久免费网游《刀OL》11月3日开放新服
远程破解盗窃QQ密码的各种方法
windows下如何修改右键菜单
安装IE7.0密技 绕过WGA 完美轻松搞定
msn8.0下载、msn shell、msn8.0中文版
流氓软件清理助手下载
应用readyboost实测闪存是否能提高VIS
ASP 域名查询系统代码
QQ被盗到出售过程详解
Win2000下PHP服务器安装攻略
IIS环境下安装PHP5手记全攻略
PHP5:session会话的使用和分析
PHP和ASP上传漏洞探究
如何禁止flash动画的自动跳转
合理的网页设计具有哪些特征
从基础到精通:CSS实用教程(三)
从基础到精通:CSS实用教程(二)
从基础到精通:CSS实用教程(一)
CSS基础学习:样式表CSS简明教程
CSS样式表:详细介绍IE7新支持的选择器
Photoshop创意壁纸教程
著名的SQL流量注入(SQL注入)攻击法 
50种方法巧妙优化你的SQL Server数据库

设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyrights © 2004-2006 iYiT.Net All Rights Reserved.
网站合作、广告联系QQ:147007642、466949678
易特网络技术 点击这里给我发消息