PHP模板引擎SMARTY
2024-05-04 22:04:38
供稿:网友
用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介绍多少会有点意思。