PHP fastm设计思路深度剖析

http://tech.ddvip.com   2007年08月26日    社区交流

内容摘要:fastm设计思路深度剖析

  1.PHP(&fastm)把文档切割为简单的DOM结构

  PHP模板的设计思路非常漂亮,用注释里的Begin和End把HTML(WML,或任何XML)页面切割成不同的块,而且块里面还可以继续切块。

  这样一来,一个页面被切割成一个树结构,很象DOM结构。只是DOM结构太过笨重,对每一个元素都要建立一个节点,而且节点的类型非常复杂。比如,一个HTML DOM结构,有多少种HTML元素,就会有多少种节点类型,比如,Body,Table,TR,TD,Form,Input等。

  而PHP模板则是一个轻量级的DOM结构,一个Begin-End块就是一个节点。Begin-End块只包括三种内容——静态文本,变量,和其它的Begin-End块。

  设计思路如此简洁而强大,易用而通用(可以用在任何规范或不规范的XML页面中,比如HTML,WML,甚至XUL,XAML),而且,能够在HTML编辑器中所见即所得。纵观天下模板技术,莫出其右。

  我经过了多种Java页面技术的折磨,经同事介绍,认识了PHP模板技术,欣喜异常,原来竟有这样的好东西,只恨相识太晚。

  Fastm模板的思路完全借鉴PHP模板思路,只是稍微做了一些扩展。(详情请参见我的上一篇提到JDynamiTe的文章——Java页面技术综述)。

  Fastm模板的BEGIN-END DYNAMIC块,就相当于PHP模板的Begin-End块。

  Fastm模板的BEGIN-END IGNORED块,就相当于PHP模板的忽略不显示的Begin-End块。

  比如下面的HTML片断。

  <select name=”zipcode”>
        <!-- BEGIN DYNAMIC: zipcodes -->
        <option value=””></option>
        <!-- END DYNAMIC: zipcodes -->
  </select>

  我们看到,这个片断包含一个BEGIN-END块(zipcodes),这个块里包含两个相同的变量,其它的部分都是静态文本。

责编:豆豆技术应用

正在加载评论...