Home >Backend Development >PHP Tutorial >(PHP)模板引擎Smarty介绍_PHP教程
模板
引擎Smarty深入浅出介绍——php(做为现在的主流开发语言)
来自
: cjjer 做了部分变动
用php(做为现在的主流开发语言)实现MVC开发模式的逻辑层和表示层有多种模板引擎可供选择,但是官方引擎SMARTY诞生后,选择就有了变化。它的理念和实现都是相当前卫的。本文主要讨论SMARTY之于其他模板引擎的不同特点,简要介绍了该引擎的安装及使用,并用一个小的测试案例对比了SMARTY和php(做为现在的主流开发语言)LIBtemplate的速度和易用性。
一、MVC需要模板
MVC最早是在SmallTalk语言的开发过程中总结出的一种设计模式,MVC分别代表了模型、视图和控制,目的就是让不同的开发角色在大中型项目中各司其职。在网络应用程序的开发中,可以用下图来表示各概念之间的关系。
该图展示了一个简单的WEB应用程序,用户在浏览器上看到信息是数据库服务器上的内容,但在这之前经过了应用服务器加工。开发人员负责的就是建立数据结构、处理数据的逻辑以及表示数据的方法。
96年cgi(现在已经不多人在用了)在中国开始流行的时候,早期的WEB程序员都是从HTML开始自学成材的,在PERL中print一行行的HTML并不是一件难事,但是随着网络的一步步提速,页面大小也从当初的二、三十K暴涨了十倍。写cgi(现在已经不多人在用了)程序就产生了一个迫切的要求:分开PERL和HTML源码。于是,社会进步体现在开发小组内部的分工上。由于美工和程序员对互相的工作并不是十分熟悉,在进行合作的过程中需要用一种约定的语言进行交流。
这种语言并不是我们的母语或者英语,术语叫做模板,逻辑和表示依靠它联系。它是结合了HTML和脚本语言特征的一种表达方式。通过这种方式,表示层可以按照用户所希望的格式来显示经过逻辑层处理过的数据。如果你有Windows平台下MFC的开发经验,那么一定会很熟悉Document/DocumentTemplate/View的封装,这就是一个很典型的MVC例子。对于Web应用来说,个人认为J2EE中的EJB/servlets/jsp(SUN企业级应用的首选)是最强大的,当然还有简洁优美的Structs。另一个很有名的实现就是COM/DCOM+ASP,这个组合在我国是最多人使用的。
通过几种MVC实现在WEB应用程序里的对比,可以得到一个关于模板的概念:一组插入了HTML的脚本或者说是插入了脚本HTML,通过这种插入的内容来表示变化的数据。下面给出一个模板文件的例子,这个模板经过处理后在浏览器里显示Hello,world!
$greetings
这里暂且省略处理方式,在后面做专门对比讨论。
二、为什么选SMARTY?
对php(做为现在的主流开发语言)来说,有很多模板引擎可供选择,比如最早的php(做为现在的主流开发语言)LIBtemplate和后起之秀Fasttemplate,经过数次升级,已经相当成熟稳定。如果你对目前手中的模板引擎很满意,那么......也请往下看,相信你作为一个自由软件爱好者或者追求效率和优雅的开发者,下面的SMARTY介绍多少会有点意思。