#1 jake

MVC架构中,View视图层主要是负责与显示相关的功能。从提高团队开发效率的角度出发,sp框架的spView视图类的期望能达到的目标是:


  • 将HTML模板与PHP代码分离,一方面可以让前端设计师(制作HTML模板)和PHP程序员(编写PHP代码)并行地工作,也就是人员功能分离;另一方面,有利于组织代码。
  • 增加可重用模板,减轻重复的工作量。
  • 在一定程度上使用模板缓存技术,以提高程序执行速度。

而以上三点,也正是当前主流PHP模板引擎希望能够做到,所以sp框架内置了业界最流行同时也是PHP官方出品的Smarty模板引擎技术。使用Smarty模板引擎将很轻易达到上述目标。


Smarty的其中两个设计理念,就是“功能最小化原则”和“数据屏蔽”。


“功能最小化原则”是因为模板技术主要对象是前端设计师,所以模板上面逻辑功能将是非常有限的,在未进行任何的配置之前,前端设计师几乎只能使用Smarty自带的一些简化前端的函数。当然对于前端设计师而言这是非常有利的,毕竟前端设计师需要的正是专注于前端HTML和简单的逻辑开发,而不是去思考更为复杂逻辑数据程序设计。


“数据屏蔽”其实对于我们并不陌生,这是面向对象编程中的一个概念,简单来说就是希望我们的程序可以像一个黑盒子,仅通过唯一的接口来进行交互,这样的程序才是安全的,可控的。而在Smarty中,数据仅能通过设定的变量来进行传输到模板中,这是模板获得数据的唯一接口,也正是很好体现“数据屏蔽”的特点。

我们可以开启模板变量调试功能,从模板的调试信息来看,更能体会到“变量是模板获取数据的唯一接口”的特点。



2012-08-04 14:58:23