SMARTY的意义

个人认为smarty被移出php.net的项目,最大原因是smarty不再被上升到模板引擎的高度。

作为一个模板引擎,smarty并不是最佳选择。国内discuz的高效、原生的blitz引擎都会是比smarty更好的选择。

所以smarty受到大家的冷落。

 

从前端开发者的角度或者整个程序的架构上讲,smarty的作用却是目前一些简单的模板引擎所不具备的。

SMARTY对于我而言最大的作用是把前端和后端比较彻底地分离了。

对于模板的重用、模板和程序的分离达到了较好的效果。

下面这个例子是模板与程序的深度分离

举例:{$topic.groupName|truncate:14:"..."} 语法简洁,不用再去了解mb_substr和substr的区别。字符串要多长,难道不是前端的事情吗? (就这点,马宝学长如果知道有这种方式,肯定会很高兴的 :) 注:马宝是一设计师,连CSS都不全会)

实际上就是对截取字符串这个函数进行了封装,达到高度的可重用性。smarty在这里起到的作用就是给前端引用后端资源进行了封装和组织。

下面这个例子是模板和模板的分离 

此外,在group模块,模板里需要使用用户模块里的东西,如果用户未登录就显示用户未登录,用户已经登录则显示欢迎词。如何才能达到两个模块最大程度的分离呢?

除了模板和模板的分离还需要程序的介入,但是程序之间也需要分离。

我是这样处理的:{include file="view:users/users/userInfo"} view资源是自己定义的,对以一种简单优雅的方式引入模板,进行了组织和进一步处理。

区块、修改器、模板资源等组织形式,对于一个比较复杂的网站完全够用。

在越来越多的人关注div+css重用的今天,实用性比较大。如果blitz能完全实现smarty模板引擎的语法,我很乐意去使用。

本文采用Creative Commons协议,复制本文需遵守三点:1、保留署名(链接);2、非商业性使用;3、再次创作的作品必须以相同的许可协议发布。法律顾问:庄毅雄律师

Tags: smarty的意义

« 上一篇 | 下一篇 »

sunu

我感smarty用来做为多用户系统自定义模板还是不错的,总不是让多用户系统使用php代码做模板吧。

Post on 2009, December 19, 1:17 PM 1

wei1224hf

smarty主要是做前台用的,这样理解对吗?

Post on 2010, September 5, 10:02 PM 2


Comment (require):