麻辣堂|资源主站|开发论坛|在线手册
首页 Apache Linux Java MySQL 注册帮助 
PHP项目开发组是PHP开发资源网于2007组年建成立的项目开发团队,目前核心开发成员有27人, 项目协作成员8名.下设7个开发组,主要承接大/中型网站项目开发任务。

    由于开发任务较多,人员比较紧张,现面向社会招聘全职或者兼职开发人员,不管你是在校大学生,还是全职开发人员,以及SOHO都可以联系本站,我们可以长期合作,并为您带来丰厚的报酬。
  您现在的位置:PHP开发资源网 > 麻辣堂 > 详细资料
待解决
[讨论]模板引擎到底需要么?以及未来
悬赏分:20 - 2007年08月14日

本来欧对Smarty等模板引擎的存在及利用深信不疑。只是因为从来没有跳出来好好思考过。

看了几篇文章(推荐,特别是voostind的发言):
http://www.sitepoint.com/forums/showthread.php?t=67849&pp=25

英语不太好,看了几小时。现在应该想想,模板引擎到底给了我们什么?
我想出现这样的争论,焦点在于php本身就是模板语言。
在这种情况下,是不是还需要另外一种语言来完成php的天生功能呢?
我用Smarty开发过两个比较大的网站,原来真的觉得它很不错的。现在跳出来想想,也许事实不是这样。但是很多事情不用它我又觉得麻烦,但是用了它对谁都不好。
这里用过模板的也应该不在少数。模板真的可以解放程序员?
至少在我,页面设计和代码编程都是我一个人。以我用smarty的经历,感觉要写三种程序。呵呵,反而多了很多工作量。

我现在的想法是:
用php本身完成模板的功能,就是把程序和页面设计分开成两个文件。页面设计里只能用简单的输出函数或流程控制。就像smarty提供的 {if} {/if}之类,完全可以用php自己来写。
这样效率方面是不用争议的,比smarty快N倍。
剩下的争议就是:这样是代码和页面分离么?美工会php么?
至于后一个问题,我不觉得有必要讨论。其实smarty那些{if}{/if}美工也不会。程序员还不是得美工完成页面后自己加代码?只不过代码换成了引擎的或者加的少了而已(大部分只是输出)。或者说让美工学学简单的引擎语句呀?那还不如让美工学学简单的php呢。至少简单的php比那个引擎语句好懂也成熟。

不过这样也有严重的问题。比如,我一个项目有几个页面是公开给用户自由设计的。用模板引擎的时候,就是告诉他们有哪些变量可以拿来用。不必考虑他们做出来的模板安全问题或者模板错误(可以截获错误处理,告诉用户出错了回去修改就完事)。
如果纯php模板公开,安全问题是个大问题。就不用多说了。一直没想出解决办法。

不知道这里的牛人们有什么好建议。

那个牛B作者有些话我很赞同。真正的模板是运行在客户端的,不是服务器端。这个角度上看XML/XSLT绝对胜出。用php可以么?

我想如果要做,除了走XML/XSLT外(个人感觉XML处理起来比较慢,会占浏览器和系统很大资源),还有一条路就是客户端脚本(JavaScript)。但是这个方面很不成熟,而且维护起来比较困难。
但是可以实现,而且如果找到一条比较好的路子,这种方法的优势是最明显的:
1。可以最大程度降低服务器负荷,因为服务器只需要把数据从数据库里取出发给客户。而且HTML输出或者UBB代码识别等耗资源的东西完全给客户端。
2。同时也加快页面传输和显示。传输不用说,数据量是最少的。页面显示至少比XML/XSLT快吧。
像最新的动网论坛,显示帖子列表或者帖子浏览都是用JavaScript完成的,而且它里面也是用模板的。模板变量替换都由Js完成了。欧个人觉得这个方法虽然是最烦琐的,但是是最有效的。当然维护起来是最差的。

最近考虑这个问题,是因为最近老是关注效率的问题。
也许效率和方便比起来,还是选择方便。但是要问问自己,模板真的方便了吗?

欢迎讨论,洗耳恭听。如果有最新的好的想法,欢迎交流啊。

提问者:yuelinniao   08-14 14:02
答复
路过。。。顺便帮顶:)
回答者:玉米づ冰冻可乐 - 瓦岗村民 8-22 09:10
我也来回答:
不管你有没有帮助我们,瓦岗寨8万村民将感谢你。。。。。

为防止灌水,您需要计算一道数学题: 答案:
73 + 95 = ? 请将计算结果填在上面

 
[]
©2007 PhpRes.COM