background image

PHP 开发有关的模板问题

关于

PHP 的模板的确是一个说起来容易做起来麻烦的事情。随便一数大概有 20 种以上

的选择,光

pear 里面就包含了 5 中不同的模板,实在让人头疼。

千万不要人云亦云的说这个好那个不好,选择模板之前最好先应该搞清楚模板的真正

目的是什么?

 简单地说,模板的核心目的就是一个 team work。主要的作用方式有两种:

1、分离 HTML 和 PHP 使网页设计师和 PHP 程序员合作更加愉快。
2、分离显示逻辑和事物逻辑,使得核心事务逻辑的变更和应用程序的扩展更加容易和

灵活,也就是说使得程序员之间合作更加愉快。(这一点经常被人们忽视或者误解,总以为

PHP 从 HTML 中弄出去就叫分离显示逻辑和事物逻辑了,如果这样当初又何苦让 PHP

html 混在一起呢?)

搞清楚这个模板的真正目的是什么,就容易做出正确的选择了。

如果只有你一个

php 程序员但是需要和其他的网页设计人员一起协同工作,那么选择

能 够 分 离

HTML 和 PHP 的 模 板 就 可 以 了 , phplib  ( 现 在 好 像 集 成 到   Pear  里 面 了

 

http://pear.php.net/package/HTML_Template_PHPLIB)或者

FastTemplate 都是这样的东西,很简单容易上手。

如果你的网站界面比较丑陋并且主要由程序员来完成,但是功能比较复杂更需要强大

的扩展功能,需要分离各个层次包括显示逻辑,那么不要用什么特别的东西,

PHP 本身就

是最好的模板了。要注意的是在这种情况下,你要非常认真的设计你的程序,始终记住要分
离的不是

PHP 和 html 而是事务逻辑(business logic )和显示逻辑(presentation logic)。这也是为

什么我一直对于

Smarty 这种东西非常的抵触, 因为这个 Smarty 的语法太复杂了太强大了,

 几乎重新发明了一种脚本语言东西, (即使是 PHP 的程序员也要重新学习它)。更让人费
解的是

 这种脚本 越是强大,越容易让人将事务逻辑(business logic )和显示逻辑(presentation 

logic)混在一起, 破坏了模板的初衷。

如果你既想

HTML 和 PHP 分离,得到更好的视觉设计,又想整个系统有非常强大的扩

展能力能够适应

html,XML,wml 各种界面,而且不用去学习复杂的语法的同时提供较高的

运行效率,那么这就是一个相当有挑战性的问题了。坏消息是目前还没有一个成熟的模板真
正能够达到这样的要求,好消息是完成这样的一个模板并不是很难,如果你尝试过

Zope 或

者是

ColdFusion 就会发现这种模板的影子,

wact http://wact.sourceforge.net/ 和 phptal http://phptal.sourceforge.net/ 就是在向这个方

向发展,应该很有前途)。