+ -
当前位置:首页 → 问答吧 → 模板引擎简直就是一个大笑话

模板引擎简直就是一个大笑话

时间:2007-02-04

来源:互联网

昨日我在写一些代码,正好手头没有smarty,而且也不能上网,后来,我自己写了一个模板引擎。但是后来我又想起一句话,php本身就是一个模板语言。于是我便发现了这个笑话。
我可以直接将php输出语句写到html离,取出数据后我再inlcude就ok了,缓存系统我自己可以构造,什么狗屁预编译,简直就是愚弄劳苦大众。以后凡是自己写系统一概不用现有的模板引擎。
不知道有人发现这个问题没有。一般情况下,smarty模板也是程序员来写,我们何不直接写php输出语句,而再去学那个乱七八糟的y模板语言。

作者: hobbs136   发布时间: 2007-02-04

哈哈 ,我们这次开发项目,也是分成两派,一派不熟悉模板,坚决反对用,并举出很多理由(我开始属于这一边),另一派当然是要用模板,也举出很多理由 . 一个项目不可能分成两种开发模式吧.最后项目主管拍板:用模板.现在我被洗脑改造过来了.(;P )mvc的确好.;P

作者: weiwei   发布时间: 2007-02-04

如果不使用模板,而直接使用php,那么如果美工在其中放上了一些不良代码,你就惨了。

作者: mzt   发布时间: 2007-02-04

我跟你一样~一开始不喜欢用模板,后来因为项目赶时间,就用了

哈哈..果然快了!!!方便还实惠....

好不好就不知道了,但开发效率确实快了~~

作者: lmhllr   发布时间: 2007-02-04

月经帖~

作者: Ben   发布时间: 2007-02-04

日经日经

作者: Phzzy   发布时间: 2007-02-04

引用:
原帖由 Ben 于 2007-2-4 14:29 发表
月经帖~
哈哈..顶.

作者: mitch   发布时间: 2007-02-04

不明白楼主说什么

作者: dzjzmj   发布时间: 2007-02-04

楼主应该没有做过中大型开发吧 :L

作者: cator   发布时间: 2007-02-04

引用:
原帖由 cator 于 2007-2-4 23:58 发表
楼主应该没有做过中大型开发吧 :L
楼主看来还有点希望,方向是正确的,继续努力。


至于什么是大型网站?同时[一分钟内]在线1w人,排名300左右算不算呢?


真正的瓶颈在PHP的没有持久数据库连接池,就死在上w个连接同时同时攻击数据库

[ 本帖最后由 gege 于 2007-2-5 00:14 编辑 ]

作者: gege   发布时间: 2007-02-05

引用:
原帖由 <i>cator</i> 于 2007-2-4 23:58 发表<br />
楼主应该没有做过中大型开发吧 <img src="images/smilies/sweat.gif" smilieid="10" border="0" alt="" />
<br />

你可以搜一下我的文章,看看我的水平。

作者: hobbs136   发布时间: 2007-02-05

引用:
原帖由 <i>mzt</i> 于 2007-2-4 12:11 发表<br />
如果不使用模板,而直接使用php,那么如果美工在其中放上了一些不良代码,你就惨了。
<br />

美工会用smarty吗?每个模板不是我们程序员写的。

作者: hobbs136   发布时间: 2007-02-05

引用:
原帖由 <i>lmhllr</i> 于 2007-2-4 13:07 发表<br />
我跟你一样~一开始不喜欢用模板,后来因为项目赶时间,就用了<br />
<br />
哈哈..果然快了!!!方便还实惠....<br />
<br />
好不好就不知道了,但开发效率确实快了~~
<br />

我刚过了一个坎,我不但会用smarty,而且很熟练,甚至可以说精通,但是,我发现了php应用的本质。smarty最重要的功能不是分离,而是cache。

作者: hobbs136   发布时间: 2007-02-05

引用:
原帖由 <i>Ben</i> 于 2007-2-4 14:29 发表<br />
月经帖~
<br />

什么版主?不是看见陌生的东西就乱吠的东西,去客观的想想。

作者: hobbs136   发布时间: 2007-02-05

引用:
原帖由 <i>gege</i> 于 2007-2-5 00:08 发表<br />

<br />

<br />
楼主看来还有点希望,方向是正确的,继续努力。<br />
<br />
<br />
至于什么是大型网站?同时在线1w人,排名300左右算不算呢?<br />
<br />
<br />
真正的瓶颈在PHP的没有持久数据库连接池,就死在上w个连接同时同时攻击数据库
<br />

我并不高明,但是你说的这点小东西我还是知道的。

作者: hobbs136   发布时间: 2007-02-05

smarty那个也能算是编译?
不过是把模板换回php罢了.

作者: 书生   发布时间: 2007-02-05

跟楼主有几乎同样的经历:
刚接触php时,什么都不管,就把php写在html里,完成功能就可以.
慢慢地,做的项目复杂了,发现改起来很麻烦..开始用pear:IT
后来,由于项目需要,转向了smarty,并喜欢上它..
用着用着,觉得smarty实在太庞大了..用在某些项目中很不合适,于是尝试自己写模板引擎..
写着写着,出来的东西居然有八九分像smarty,于是放弃..
现在,在我的项目中,我也开始转向用php本身来做view...操作起来,跟用smarty没什么两样

至于说美工,我倒没见过会帮你写模板代码的,我们公司无论你用什么模板,都是美工切好html后,就交到程序员手中,什么模板一概不管...

作者: 太阳雨   发布时间: 2007-02-05

引用:
原帖由 <i>太阳雨</i> 于 2007-2-5 09:37 发表<br />
跟楼主有几乎同样的经历:<br />
刚接触php时,什么都不管,就把php写在html里,完成功能就可以.<br />
慢慢地,做的项目复杂了,发现改起来很麻烦..开始用pear:IT <br />
后来,由于项目需要,转向了smarty,并喜欢上它..<br />
用着用着,觉 ...
<br />

遇到知音了。

作者: hobbs136   发布时间: 2007-02-05

视项目情况而定。

作者: weicanhuang   发布时间: 2007-02-05

引用:
原帖由 hobbs136 于 2007-2-5 09:08 发表
<br />

美工会用smarty吗?每个模板不是我们程序员写的。
在我们公司,美工都会模板语法,所以模板都是完全由美工自己弄的,程序员只做程序,看来我很幸运:lol。祝各位早日脱离苦海!

[ 本帖最后由 mzt 于 2007-2-5 11:20 编辑 ]

作者: mzt   发布时间: 2007-02-05

引用:
原帖由 hobbs136 于 2007-2-5 09:05 发表
你可以搜一下我的文章,看看我的水平。
水平高又怎样?
1、水平高不代表就能开发中大型系统。
2、smarty不是模板引擎的标准,你可以说smarty不好用,但由smarty引伸到否定模板引擎的作用是不是有点夸大其词了。
3、有了模板引擎,总有一天能实现代码和界面的合理分离,PHPer就有希望可以从调整界面的苦难中脱离出来专心的做Coder。

PS:个人强烈支持模板引擎技术及软件开发架构,并期待更好的产品早日出现。

作者: cator   发布时间: 2007-02-05

引用:
原帖由 <i>cator</i> 于 2007-2-5 11:08 发表<br />

<br />

<br />
水平高又怎样?<br />
1、水平高不代表就能开发中大型系统。<br />
2、smarty不是模板引擎的标准,你可以说smarty不好用,但由smarty引伸到否定模板引擎的作用是不是有点夸大其词了。<br />
3、有了模板引擎,总有一天能实 ...
<br />

经历一些之后我才能发出感言。

作者: hobbs136   发布时间: 2007-02-05

引用:
原帖由 hobbs136 于 2007-2-5 09:05 发表

你可以搜一下我的文章,看看我的水平。
真搜了一下你的文章, 不想打击你, 还是多花时间思考吧.
      不用模板, 只适合个人单干. 与美工合作的时候, 内嵌的php代码, 美工会头痛. 这样的后果是每次网页的修改, 美工说"内嵌的php代码, 我不会改, 不好意思, 我只能出HTML代码给你, 麻烦你的再次把php代码嵌入!!!!:)" 当然, 如与你合作的美工水平实在太差,  那另计.
      虽我没用Smarty, 不过我也看了一下他的模板语法, 的确是有点复杂, 美工学习的确要点时间.

作者: litqqs   发布时间: 2007-02-05

引用:
原帖由 <i>litqqs</i> 于 2007-2-5 14:22 发表<br />

<br />

<br />
真搜了一下你的文章, 不想打击你, 还是多花时间思考吧. <br />
      不用模板, 只适合个人单干. 与美工合作的时候, 内嵌的php代码, 美工会头痛. 这样的后果是每次网页的修改, 美工说"内嵌的php代码, 我不 ...
<br />
只是冰山一角而已,不用你打击,我自己知道有多少斤两。smarty语法就是简单的php输出语句,学会smarty,恐怕和学会php基本语法没有什么区别。

什么模板引擎适合团队开发,那只是一个笑话,目前有几个美工会模板语法,连标准css都写不好。我直接用php输出,然后将输出的变量取出,最后再include模板,和用smarty这个套,有着一摸一样的效果。让美工学习smarty,不如教他们点php知识呢。
最后,表现全部用css来控制,只要结构不变,我就不用动模板。美工头疼什么,美工自己有自己的备份,自己不会照着修改啊。

作者: hobbs136   发布时间: 2007-02-05

http://www2.xydw.com/read.php?wid=329
最后有一句话很经典:
并且记住:模板引擎的要点是把你的业务逻辑从你的表现逻辑中分离出来,而不是把你的PHP代码从HTML代码中分离出来。

作者: hobbs136   发布时间: 2007-02-05

引用:
原帖由 hobbs136 于 2007-2-5 16:13 发表
http://www2.xydw.com/read.php?wid=329
最后有一句话很经典:
并且记住:模板引擎的要点是把你的业务逻辑从你的表现逻辑中分离出来,而不是把你的PHP代码从HTML代码中分离出来。
经典

作者: 书生   发布时间: 2007-02-05

不用模版引擎美工会头痛?那美工不会DIV+CSS吧?
不用模版引擎就不能分离业务逻辑?正菜鸟一个!

作者: gabin   发布时间: 2007-02-05

引用:
原帖由 hobbs136 于 2007-2-5 16:13 发表
http://www2.xydw.com/read.php?wid=329
最后有一句话很经典:
并且记住:模板引擎的要点是把你的业务逻辑从你的表现逻辑中分离出来,而不是把你的PHP代码从HTML代码中分离出来。
一样经典.

作者: lgy1   发布时间: 2007-02-05

引用:
原帖由 太阳雨 于 2007-2-5 09:37 发表
跟楼主有几乎同样的经历:
刚接触php时,什么都不管,就把php写在html里,完成功能就可以.
慢慢地,做的项目复杂了,发现改起来很麻烦..开始用pear:IT
后来,由于项目需要,转向了smarty,并喜欢上它..
用着用着,觉 ...
哲学上的否定之否定.看来楼主上升到一定境界了

作者: weiwei   发布时间: 2007-02-05

引用:
原帖由 Phzzy 于 2007-2-4 15:51 发表
日经日经
:D :D

作者: dennis   发布时间: 2007-02-05

引用:
原帖由 hobbs136 于 2007-2-5 16:13 发表
http://www2.xydw.com/read.php?wid=329
最后有一句话很经典:
并且记住:模板引擎的要点是把你的业务逻辑从你的表现逻辑中分离出来,而不是把你的PHP代码从HTML代码中分离出来。
对,这就是为什么用模版的原因~~

smarty并不是为了将php代码从html分离出来,而是为了让表现层和数据逻辑层分离(php还没有很好的业务逻辑,基本上都是直接从数据库取数据,丢到表现层处理。)。

所以,你写的东西也是模版的一种,一种基本的模板~~

那么这无疑就是自己抽自己的嘴巴~~一面说模版都是垃圾,一面又自己写了一个模版用~~~

呵呵,另外,发帖的时候语气问题要注意一下。天外有天,山外有山~~~你可能觉得自己水平已经很厉害了,但是在高手眼里,是个小学生也说不定。说多了~~~闪~~~

作者: mikespook   发布时间: 2007-02-06

引用:
原帖由 hobbs136 于 2007-2-5 15:54 发表
什么模板引擎适合团队开发,那只是一个笑话,目前有几个美工会模板语法,连标准css都写不好。我直接用php输出,然后将输出的变量取出,最后再include模板,和用smarty这个套,有着一摸一样的效果。让美工学习smarty,不如教他们点php知识呢。
最后,表现全部用css来控制,只要结构不变,我就不用动模板。美工头疼什么,美工自己有自己的备份,自己不会照着修改啊。
一个团队,  你不能保证每一个成员的水平一样,  你这样的做法, 难保当中有成员会图个方便, 说不定就是在代码中都出现SQL语句了, 而你说的, 每次都只是一个"我", 而不是整个团员成员都这样做. 所在说这样的做不适合团队开发. 至少不适合团员成员水平参差不齐的团队. 而我们平时所在的开发团队, 怕90%以上是水平参差不齐的.
      没用模板而又能代码质量好的成功产品极少, 找来找去只找到 PHPMyAdmin 一个.  不过不幸的是,  我们的团队成员的水平不是个个都可以与 PHPMyAdmin 的团队成员水平相当的. 而我们的开发是进度影响着项目的成本(时间, 金钱都有), 不能与 PHPMyAdmin 等同视之, 因为 PHPMyAdmin 是免费的, 不是以赚钱为目的.

作者: litqqs   发布时间: 2007-02-06

:lol你这帖子本身就是一个大笑话

作者: zhaogequ   发布时间: 2007-02-06

引用:
原帖由 <i>zhaogequ</i> 于 2007-2-6 01:58 发表<br />
<img src="images/smilies/lol.gif" smilieid="12" border="0" alt="" />你这帖子本身就是一个大笑话
<br />
实践->理论->再实践->再理论...如此反复。可能我用词不当,可能每个有点资质的人都有点自负(我也不例外),但是争论中,我在进步,吸收别人的长处,发现自己的短处。我觉得这是很好的一课,让我再次想起真理。对那些提出批评教育的人表示感谢和景仰,对那些随声符合的人也表示感谢,也对那些无知者表示感谢,因为我还知道还有人比我更没有自知之明。
这是一个在应用上的争论,其实比单纯的技术争论更有意义,毕竟人是活的,技术是死的。计算机就是0-1,但是人呢,如果你能用0-1写出一个人,我愿意永生追随你。

作者: hobbs136   发布时间: 2007-02-06

多人合作的时候,项目大了,你就知道模板引擎的作用了。

作者: yltgood   发布时间: 2007-02-06

我比较同意楼主!

看了前面激烈的争论,大概也知道一些情况,可能大家误解了楼主,应该说模版是要用的,但要实现模版功能,并不一定要用smarty,phplib这些模版,我想这是楼主的意思

1。只要逻辑和显示分离就行,自己能控制整个代码的执行情况,
2。smarty虽然里面功能很强,但很多也用不到,为什么要加入这些不稳定因素在自己的程序里面!看看论坛程序,难道他们都用smarty或phplib了吗?拿我熟悉的phpwind来说,一个函数printEot就实现了smarty的功能
3。对于美工,难道把{}换成<?php ?>对于美工影响就这么大吗?






[ 本帖最后由 h058 于 2007-2-6 13:38 编辑 ]

作者: h058   发布时间: 2007-02-06

楼上的观点比较中立点,我赞同,不要在字眼上钻牛角尖,没意义。

作者: cator   发布时间: 2007-02-06

呵呵。楼主用的估计就是pw的方法。不是模版的错,是smarty的错。可能在楼主眼里smarty被神化了。;P

作者: zhuzhu2hao   发布时间: 2007-02-06

呵呵。笑话。SMARTY最重要的功能是缓存

是性能的提升。你说那些干嘛呢。

并不是说SMARTY是万能的良药。有些项目肯定不适合SMARTY的。

但是有些项目。SMARTY是最好的选择。

再说一句。SMARTY重要的性能就是缓存技术!

作者: 老胡   发布时间: 2007-02-07

我也不用模板..因�槲也���用...甚至可以�f�]���^

作者: djlongshao   发布时间: 2007-02-07

模版的用途是什么?
为了MVC分离,你直接输出了,那只能起到缓存的作用不能算是分离了。

作者: 萤火虫   发布时间: 2007-02-07

mvc哦

作者: qingis   发布时间: 2007-02-07

我也在开发一个项目,算是中小的吧,计划是用SMARTY的.
因为公司的美工不懂PHP,要是用PHP做模版的话,我看很难配合起来.

作者: chenguomin   发布时间: 2007-02-07

每当美工说页面不爽要改,我就很郁闷,花上大半天陪着他调html很烦人,感觉像在干苦力。:Q

作者: weicanhuang   发布时间: 2007-02-08

我觉得zf的view不错 模板语言也是php 不用再学(其实也不是学不学,就那么几句,不要那么...)

作者: wind840619   发布时间: 2007-02-08

你的这个贴也是一个超级笑话!

请尊重别人的劳动成果!

不要恶言重伤,它的存在必定有他的理由

你不使用或者不愿意使用就别给别人造成不好的印象!

我对你的品德表示怀疑!

作者: liuxingyuyuni   发布时间: 2007-02-09

我真的很不希望在PHPCHINA看到这样的讨论帖子。
“对于一个争论,如果双方都很明确自己在说什么,而争论又持续了很长时间没有结果,那么最好的办法就是投硬币决定谁说的算。”
这个幽默的说法是在《OOD启思录》中看到的,我觉得很有趣,呵呵。没有谁对谁错,把自己认为对的坚持到底就可以了,不要去浪费时间去说服一个观点跟你对立的人。也许哪天不用你来说服,对方自然会改变立场。
大家还是多讨论点有技术含量的话题吧。
(PS:不过本人还是赞成用模板,可能是因为我编程风格倾向与面向对象范型,我喜欢模块化强,结构严谨的代码)
这个帖子,没必要再讨论下去拉。。。:)

作者: 玉面修罗   发布时间: 2007-02-09

模版引擎还没有接触
真正的“分离”还是.net吧  
不懂

作者: redmangame   发布时间: 2007-02-10

无聊加误导新人的帖子

作者: leehui1983   发布时间: 2007-02-10

smarty 模板本身就是写给程序员用的。而不是写给美工和逻辑分离使用。

作者: 小陈   发布时间: 2007-02-10

还没有学习过模板,看看争论热身热身

作者: chinakr   发布时间: 2007-02-10

做了一个合集"关于PHP模板引擎的大讨论"
http://www.diyinfo.com.cn/discuz ... &extra=page%3D1
立此存照

作者: chinakr   发布时间: 2007-02-10

支持smarty

作者: soone   发布时间: 2007-02-10

美工看到模板引擎跟傻子看见大便一样,当大饼来吃。
现在的所谓美工真是没素质

作者: 编程骇客   发布时间: 2007-02-10

引用:
原帖由 编程骇客 于 2007-2-10 23:28 发表
美工看到模板引擎跟傻子看见大便一样,当大饼来吃。
现在的所谓美工真是没素质
这么比喻有点过了吧?:L

作者: cator   发布时间: 2007-02-11

有点晕

作者: yang286   发布时间: 2007-02-11

<?=$sData;?>

<{$sData}>


理念上区别很大,实际区别不大...

作者: fnet   发布时间: 2007-02-12

使用模版的最大好处,就是代码重用性提高了。
一个class完成某个功能,下次同样的功能只需要修改布局(html,css立即完成)

php代码没有太多输出html,代码更容易让别人读懂。

作者: 我要读书网   发布时间: 2007-02-15

谁用谁知道啊

开始俺也是楼主观点,后来。。。。。

没有模版,升级和维护很困难的,多人协作更是困难

作者: drpython   发布时间: 2007-02-26

恩,同意楼主的。

<?=$var?>和{$var}对美工来说没有什么区别吧!

我现在基本上都是采用类似ZF的VIEW来实现美工和程序的分离。:D

作者: feifengxlq   发布时间: 2007-02-26

干技术活的火气都大,不像我们民工没点脾气.................:lol

作者: 非典型菜鸟   发布时间: 2007-02-26

引用:
原帖由 cator 于 2007-2-27 10:31 发表
偶们都是民工,IT民工
:lol

不过标哥已经晋升为工头了;P

作者: cator   发布时间: 2007-02-27

确实没必要争论
有人愿意用,他们能说出自己的理由,而且也合理
有人不愿意用,他们还是能说出自己的理由。

作者: tqjs   发布时间: 2007-03-12

引用:
原帖由 tqjs 于 2007-3-12 11:09 发表


:lol

不过标哥已经晋升为工头了;P
就算是晋升为工头了,但还是草根阶级呀

作者: 玉面修罗   发布时间: 2007-03-12

模板固然有其存在的道理,不用模板也不见得模板不好用,只是可能你还没发现其有其他的妙用吧,初学者用模板可以让他们感觉很好的,我就是其中一个,至少美工和程序员分开,可以收获不少吧我想

作者: cator   发布时间: 2007-03-12

引用:
原帖由 mzt 于 2007-2-4 12:11 发表
如果不使用模板,而直接使用php,那么如果美工在其中放上了一些不良代码,你就惨了。
是啊 ,怎样防止 这样的确情况发生呢

作者: linuxroot   发布时间: 2007-03-20

引用:
原帖由 mzt 于 2007-2-4 12:11 发表
如果不使用模板,而直接使用php,那么如果美工在其中放上了一些不良代码,你就惨了。
是啊 ,怎样防止 这样的确情况发生呢

作者: wskzjx   发布时间: 2007-03-22

且不说美工有没有那本事,这根本就是伪命题。

要真有人搞破坏,美工的危害性远比php程序员小的多。既然员工品行值得怀疑,那能说美工比程序员坏吗?

作者: wskzjx   发布时间: 2007-03-22

模板是好东西,不过还是自己写更好写,更实在些。

作者: qingmedia   发布时间: 2007-03-22

反正我是不喜欢用别人的模板,还是喜欢自己慢慢写,心里舒畅,
男人,可以没钱,可以不要脸,但不能没尊严!
欲望、贪婪? 还是勇敢、无畏?

我命由人不由天
我狂,单手起狂澜!
我怒,挥刀劈深谷!
我狠,指手破天痕。
天,你能奈我何!…

作者: skyjhz   发布时间: 2007-03-22

<{strip}>
<A HREF="/" target=_self>�涵�</A>
<{foreach name=all_type item=single_type from=$web.type}>
<{if $single_type.parent_id == 0 && $single_type.id >5}>
 | <A HREF="<{$single_type.url}>" target=_self><{$single_type.title}></A>
<{/if}>
<{/foreach}>
<{/strip}>
这样的模版语句真的让人无可奈何!

作者: skyjhz   发布时间: 2007-03-22

楼主好象问的问题很有问题啊,1 使用模板有一个很好的地方就是可以生成缓存,而这些缓存文件你看过没有,这些文件都是html内容。这个过程其实就是相当了静态化。静态生成,但是这个会有个判断的过程,也就是if else这么简单。如果判断模板没有修改,而又没有新的数据的话,那个html的文件就是不用更新的(也可以设置更新时间长短),而这个过程其实就是很智能化了,如果你非要使用php自带的,你可以ob-start后在输出前使用[url=mk:@MSITStore:E:\php_manual_zh.chm::/zh/function.ob-get-contents.html]ob_get_contents()[/url]得到html文件,并写到磁盘上,然后每次访问进行同样的判断。(那我们还有必要这样做吗?)  2 该使用一些好的模板可以把程序加进去,让模板动起来,就象smarty里的section的功能,难道要自己再去写个解析循环的解析器吗?

[ 本帖最后由 wolftooth 于 2007-3-26 15:56 编辑 ]

作者: h058   发布时间: 2007-03-23

ls好像模板学得不错,偶还在学,呵呵~~:D

作者: wolftooth   发布时间: 2007-03-26

引用:
原帖由 编程骇客 于 2007-2-10 23:28 发表
美工看到模板引擎跟傻子看见大便一样,当大饼来吃。
现在的所谓美工真是没素质
美工的活换你来干你也干不来,美工没素质,你有素质

对你的言论表示BS

作者: reed2003   发布时间: 2007-03-26

不想说太多达到里, 我只知道 系统升级 代码重构的时候 用smarty的话,  只需要改一些 核心的基类 , 有些前台的 php 稍微调整,  tpl 不用 修改, 不知道  如果不用smarty的话, 改起来会是什么样 , 艾

作者: 银子   发布时间: 2007-03-27

美工吧页面 做好了, 吧每部分注释清楚, 程序员 对应天上数据, 他在 作一点相应调整, 很简单

作者: wraith272   发布时间: 2007-04-14

出言不逊啊 。呵呵 ,你真正对模板了解多少 ?
等你做大项目的时候你就知道了 。
美工在页面里如果不小心动了你的代码,那可就是灾难。
而模板代码 可以在这个概念上成为美工和程序的粘和剂而不怕它改掉你的 核心代码。
还有,模板是技术 不是 语言 用php同样可以实现模板

作者: wraith272   发布时间: 2007-04-14

引用:
原帖由 weicanhuang 于 2007-2-8 09:32 发表
每当美工说页面不爽要改,我就很郁闷,花上大半天陪着他调html很烦人,感觉像在干苦力。:Q
没错没错没错没错没错没错没错没错没错没错没错没错没错没错没错没错没错没错没错没错没错没错

强力一顶力千斤。

作者: flappy   发布时间: 2007-04-16

引用:
原帖由 weiwei 于 2007-2-4 10:25 发表
哈哈 ,我们这次开发项目,也是分成两派,一派不熟悉模板,坚决反对用,并举出很多理由(我开始属于这一边),另一派当然是要用模板,也举出很多理由 . 一个项目不可能分成两种开发模式吧.最后项目主管拍板:用模板.现在我 ...
模板主要是和美工配合用的,如果项目的成员都是程序员那到没有什么关系。用不用都无所谓
PHP本身在双引号字符串中就有{$varname}的语法。但是不能直接在HTML中使用,得加上<?php ?>包裹起来。

[ 本帖最后由 PHP.Object 于 2007-4-17 01:21 编辑 ]

作者: 旭日   发布时间: 2007-04-16

引用:
原帖由 银子 于 2007-3-27 18:01 发表


美工的活换你来干你也干不来,美工没素质,你有素质

对你的言论表示BS
MM生气了,哈哈

作者: PHP.Object   发布时间: 2007-04-17

我很支持楼主

就算用模板,自己写

用smarty,我感觉侮辱了学php

作者: PHP.Object   发布时间: 2007-04-17

楼上
如果你写小的东东 我感觉模板就一个str_replace或preg_replace就能实现你所谓的模板.
如果你用smarty做过大系统或你仔细看过smarty的话,相信你会发现它的好的
smarty太大,但是也确实有用。只是不能一棒子打死。

作者: muqiao   发布时间: 2007-04-17

本帖标题有点挑衅,所以,真正明白LZ在表达什么意思的人,10页的回复,相信最多不到1/5...
另外,smarty虽然强大,但也是用PHP写出来的,如果你真正MVC了,V应该也是直接用PHP,而不是其它用PHP封装过的东西
用过jsp的人可能有感觉,jsp仅仅是一个view层罢了,这跟用php本身作为View是一致的

作者: flappy   发布时间: 2007-04-17

:D
说的好
大部分都是只看标题就回复的人

作者: 一地风飞   发布时间: 2007-04-17

引用:
原帖由 一地风飞 于 2007-4-17 09:42 发表
本帖标题有点挑衅,所以,真正明白LZ在表达什么意思的人,10页的回复,相信最多不到1/5...
另外,smarty虽然强大,但也是用PHP写出来的,如果你真正MVC了,V应该也是直接用PHP,而不是其它用PHP封装过的东西
用过jsp的 ...
你指的是结构性的。
而不是工具性的。模板技术也只是个工具,就像adodb。你拿工具性的东西来说结构上的事。不合适吧。
标题说的意思是模板引擎没有存在的必要,所以应该讨论的是模板是否多余。
模板技术和mvc本身不冲突吧!
你不能有了mvc中其他的解决方案就否定模板本身,况且即使使用php来表现view。你敢说它就一定不用模板的分离的技术?

作者: bkkkd   发布时间: 2007-04-17

php本身就是解析语言

模板的分离技术,我不知道有没有用到。但分离技术一定有。
说什么工具性,结构性(不是计算机专业。没听过这样的名词)
其实都是为了方便人去理解。
什么mvc就是为了方便人去维护。

作为程序员应该明白,需要什么,才用什么。而不是盲目的跟从

作者: flappy   发布时间: 2007-04-17

引用:
原帖由 bkkkd 于 2007-4-17 14:14 发表
php本身就是解析语言

模板的分离技术,我不知道有没有用到。但分离技术一定有。
说什么工具性,结构性(不是计算机专业。没听过这样的名词)
其实都是为了方便人去理解。
什么mvc就是为了方便人去维护。
...
那你先弄弄分离技术和模板引擎之间的关系吧。
模板引擎是做什么用的?
你也承认分离技术一定有,那是不是模板引擎。模板引擎是解决方案。而不单单指smarty  phplib。。。

作者: bkkkd   发布时间: 2007-04-17

:hug:

作者: flappy   发布时间: 2007-04-17

:L
不好意思,表达不清楚,我说的是php一定使用了分离技术
php本身也可以算种模板
他的tag就是<??>

:o 其实这个问题真得没有必要讨论
功能实现了就行。
一年前在cu也有过这样的讨论,用什么都是程序员自己决定。
至于那个好那个不好,很难说
只能说各有用途
建议你去cu上找找相关的帖子
我个人觉得那个帖子的讨论比较好的分析了各自优劣特点

对专用名词了解不深。理解有误,别见怪

作者: goshawk   发布时间: 2007-04-17

模板引擎也只是个手段。
用php也可以实现模板引擎。
不是每个地方都用到模板引擎。
但有的地方模板引擎肯定用到。
模板引擎实现形式不一样(比如说smarty、phplib、php语言本身)也是技术需求不一样而已。本身没有问题。全盘否定太武断了 。

作者: bkkkd   发布时间: 2007-04-17

:o
怎么感觉是为了讨论而讨论的
嘻嘻

作者: flappy   发布时间: 2007-04-17

引用:
原帖由 flappy 于 2007-4-17 09:20 发表

如果你写小的东东 我感觉模板就一个str_replace或preg_replace就能实现你所谓的模板.
感觉你很了解我~~~

什么意思??

作者: bkkkd   发布时间: 2007-04-17

那要不发你的代码出来看看。呵呵,看看还有没新想法。

作者: muqiao   发布时间: 2007-04-17

业务逻辑和表面逻辑要分开,这一点不用说,大家都同意。大部份情况下是不需要使用另外一个模板语言的,PHP本身就可作为模板语言,这一点楼主说的没错。 像Ruby on Rails的模板,默认情况下(RHTML)也使用Ruby做为模板的语言。还有PHP中的Zend_View等等,很多框架的表现层都是直接使用语言本身。

但有些项目是必须使用另外的模板语言,原因在于安全,而不在于效率什么的。

比如说我们开发一个多用户Blog系统,用户可以自己修改界面的模板,那么用PHP作为模板语言就不适合了,谁知道用户会加入什么代码呢? 但如果使用Smarty或其它模板语言,把直接调用PHP代码的功能关闭,就安全了。

使用PHP做模板的典型:Yahoo!
使用Smarty做模板的典型:Flickr

这两个站点都是超大型站点。

所以用不用模板,看实际项目需要。 对于用户没有修改模板权限的项目,完全可以直接用PHP做模板,只要注意不把业务逻辑混入表现层即可。

作者: flappy   发布时间: 2007-04-18

:D :D
支持版主

作者: Haohappy   发布时间: 2007-04-18

感觉这个帖子应该结帖了。请大家要跟就跟些精华帖,我以前已经该帖子里发表了自己的观点,希望大家务实进取,不要做无谓的口舌一辩。一日遇到两个人在那里争辩公鸡跟母鸡是怎么交配的,这兽医听吧遥遥头一笑而过。。。。。。。

作者: bkkkd   发布时间: 2007-04-18

引用:
原帖由 Haohappy 于 2007-4-18 09:50 发表
业务逻辑和表面逻辑要分开,这一点不用说,大家都同意。大部份情况下是不需要使用另外一个模板语言的,PHP本身就可作为模板语言,这一点楼主说的没错。 像Ruby on Rails的模板,默认情况下(RHTML)也使用Ruby ...
这话说得贼实在,

作者: wolftooth   发布时间: 2007-04-19

引用:
我没有使用模版引擎的经验,前些时候赶时髦,试用了一把那个比较简单的SmartTemplate。初步尝试,感觉好像还不错,正如大家所说的,使用模版的初衷应该是看中它的所见所得,就打算用用它。

可当我真正用在论坛程序上,发现有些矛盾,比如我用模版的目的之一是为了所谓界面“换皮肤”,因而模版的图片、css及其它路径都是用变量来输出的,这样模版的html文件号称“所见所得”的优势在找不到css和图片的情况下荡然无存――模版呈现出的界面简陋不完整。为了能看到真实的页面,又不得不把变量替换为字符,等调好程序后,再改回来。

在控制html代码的模版引擎语言方面,我感到其原理与php类似,不过还是要学,这对于我这样的php都不熟悉的人来说,又要熟悉额外一种新语言,真是累…有一点我始终怀疑,一个一点也不懂程序控制过程的人能独立制作出可用的模版,模版中的循环以及判断语法真的就比php的foreach / if更容易懂吗? <!--[endif]-->

后来我掂量了一下自己,像我这个论坛,只是一个小项目(如果还称得上“项目”的话),还是不弄这玩意儿,直接用php做模版得了,只是借鉴模版的某些思路,php程序只输出原始数据,数据的格式化由程序的预设值及php模版共同完成,把模版文件中的php代码量尽量降低,最多保留foreach / if这样的循环、判断语句。 <!--[endif]-->

终于,还是用回了php制作的模版…

作者: h058   发布时间: 2007-04-20

一般来说,有过几年PHP经验的,都会这样:
一开始:不用模板,也不会用
然后:学会用模板,开始用,到处用,赞美模板,说什么分离啦、适合大型项目啦,团队开发啦
最后:觉得模板纯粹是脱了裤子放屁,于是又不用了,自己弄个框架,include搞定

作者: h058   发布时间: 2007-04-25

我的理解是,模板引擎可以让视图更灵活,好处理,而且模板引擎通常都支持直接写php代码,这点上面并不冲突,万一有需要用标签,也可以用,有什么不好,呵呵~

作者: books   发布时间: 2007-05-21

引用:
原帖由 books 于 2007-5-21 15:17 发表
一般来说,有过几年PHP经验的,都会这样:
一开始:不用模板,也不会用
然后:学会用模板,开始用,到处用,赞美模板,说什么分离啦、适合大型项目啦,团队开发啦
最后:觉得模板纯粹是脱了裤子放屁,于是又 ...
:lol 唉

完概念的人特别多,别人说smarty、zf,就有一大堆人跟风,难道大家都是开发大型项目的:lol

作者: liu21st   发布时间: 2007-05-21

引用:
原帖由 h058 于 2007-3-23 22:03 发表

�涵�

5}>
 | 



这样的模版语句真的让人无可奈何!
:lol 这样的模板,简直是让美工学编程,反而更麻烦了

作者: 剑枫   发布时间: 2007-05-22

有能力自己写一个模版给别人用也可以。

作者: 剑枫   发布时间: 2007-05-22

引用:
原帖由 剑枫 于 2007-5-22 10:24 发表

:lol 这样的模板,简直是让美工学编程,反而更麻烦了
美工的的职责就是设计,做html css html的其他标签应该是程序员加吧。

模版使用,最大优点是使其程序结构很清晰,不象把php写在html里,只能给增加阅读困难。

作者: mrzenix   发布时间: 2007-05-23

php代码与网页代码分离非一定要使用模板吗?

作者: 我要读书网   发布时间: 2007-05-23

我靠这贴很火爆,我也得凑凑热闹。

模板,想用就用,不想用就不用。

原来公司逼着我在用,现在我当头了,奶奶的自己写个函数,用自己的,不用smarty了。

那些支持用的,说美工什么不习惯的,美工,在我这里定义是把图出好就行了。我发现phper真是很有通病,很多很多人写html简直可以用很差来形容,我说,您别自己不行,就要别人来做,写代码是一个美工应该做的事情吗?

美工既然是要写代码,那你们是不是也要做一做图啊?

我之前不会用smarty的时候,还以为它很神奇呢,还什么编译执行,我还真以为是C++的编译型的,最后自己真的用会了的时候看了看,真TM好笑(请原谅我的粗鲁)!什么编译型!不还是混编。

懒得说了,并不是一定要用smarty就mvc了,混编照样可以玩。

哎,这话题有点老,还是冲动了,扯了这么多。

作者: lshfong   发布时间: 2008-01-10

小声儿说一句, zf 的模板就是用的 native php ……

smarty 的优势在于 filter 和 filter 扩展,能在一定程度上解决难看的混杂问题

不过爱用不用,见仁见智,没什么好争论的

作者: why0813   发布时间: 2008-01-10

火贴,我也的跟两下~

对于我来说,模版引擎smarty 是要根据自己的项目大小来决定,如果项目比较大,比如类似于taobao方面的,用smarty 等类似的模版引擎还是相当不错,但是对于我们真正在工作当中,操作比较大的项目毕竟是少数,这个时候,才有了大家在这里热烈讨论的机会.

对于小项目,我觉得可以使用或者不使用都行,主要是看跟你配合的人的美工人员的水平,这个概念我详细大家很好理解,对于中小型的项目,我建议大家可以使用TBS(小强摸版引擎),而且本人实际使用过,可能不算把TBS所有的功能用全,但是基本的功能,我觉得美工人员都是能接受的

其实,这些问题,就跟整天讨论使用那种编辑器一样, 其实说难听点,实在没有意义!

作者: slawdan   发布时间: 2008-01-10

模板体现的是构架而不是所谓的 "模板"
模板不是为了美工,而是为了自己~~
为了美工只是顺便的

作者: andyzu   发布时间: 2008-01-10

mvc是大势所趋    你那样做或许执行效率高,但是以后别人不好维护的嘛。

作者: jongin   发布时间: 2008-01-10

作者: 温柔的大海   发布时间: 2008-01-10

模板的方便是开发大型点的网站,当你的程序到了一定的级别的时候,你会发现,这一堆哪一堆的代码,就乱七八糟了,模板的分离,以及面向对象的程序,会让你更好的来做程序.

作者: 4C[FANTASY]   发布时间: 2008-01-10

张三说, 用模板a;
李四说, 用模板b;
王五说,不用模板;
某某说, 自己写一个模板。

不统一就开始了,一个项目组是需要一些规范的.
接下来一个人走了,需要进人。
什么样的人呢?会php就好?当然我们希望找一个从事多年大型开发的,但是各位好找吗?

进来以后,总要培训一下吧,怎么培训?如果标明用模板a做过项目优先(当然, 已经确定用模板a),人要好找的多, 给人力资源也他提出了明确的目标.

刚才有人说,不用模板的yahoo, 那他一定有程序规范来统一. 谁说了ebay的一个笑话, 中国ebay要改一个字体, 2个月都没改成/

楼主呢,我搜索了一下帖子, 水平自己认为不错, 工作好像不如意.
那就参与或组建一个open的项目,比如写一个轻量级的模板(只要包含自己认为有用的东西即可), 只要项目有些名气, 工作应该不成问题, 当然这样才不会使得自己的才能被埋没.

作者: yltgood   发布时间: 2008-01-23

引用:
原帖由 zgooger 于 2008-1-23 12:13 发表
张三说, 用模板a;
李四说, 用模板b;
王五说,不用模板;
某某说, 自己写一个模板。

不统一就开始了,一个项目组是需要一些规范的.
接下来一个人走了,需要进人。
什么样的人呢?会php就好?当然我们希望找一个 ...
楼主说的是模板引擎,并没有说不用模板
估计楼主说的是像PW那样的模板方法,实现了模板的功能和作用,却并不需要什么模板引擎!

作者: zgooger   发布时间: 2008-01-23

玩概念的人真多

作者: fyland   发布时间: 2008-01-23

先去了解什么是oop ...   按你的做法等你开发完项目之后想扩展视图层就该哭了..

作者: 姜运涛   发布时间: 2008-01-23

坚决不用模板。。。比较喜欢XML+XSLT

作者: marvin   发布时间: 2008-01-24

引用:
原帖由 hobbs136 于 2007-2-5 09:08 发表


美工会用smarty吗?每个模板不是我们程序员写的。
看到这句话,严重同意!!

作者: solidluck   发布时间: 2008-01-25

引用:
原帖由 hobbs136 于 2007-2-5 09:08 发表


美工会用smarty吗?每个模板不是我们程序员写的。
看到这句话,严重同意!!

作者: Snake.Zero   发布时间: 2008-01-25

引用:
原帖由 玉面修罗 于 2007-2-9 23:39 发表
我真的很不希望在PHPCHINA看到这样的讨论帖子。
“对于一个争论,如果双方都很明确自己在说什么,而争论又持续了很长时间没有结果,那么最好的办法就是投硬币决定谁说的算。”
这个幽默的说法是在《OOD启思录》中看 ...
好家伙。

作者: Snake.Zero   发布时间: 2008-01-25

引用:
原帖由 skyjhz 于 2007-3-22 13:43 发表
反正我是不喜欢用别人的模板,还是喜欢自己慢慢写,心里舒畅,
男人,可以没钱,可以不要脸,但不能没尊严!
欲望、贪婪? 还是勇敢、无畏?

我命由人不由天
我狂,单手起狂澜!
我怒,挥刀劈深谷!
我狠,指 ...
我也喜欢自己写,不过这跟男人没关系吧?嘿嘿。

作者: hxcan   发布时间: 2008-01-25

引用:
原帖由 why0813 于 2008-1-10 15:25 发表
我靠这贴很火爆,我也得凑凑热闹。

模板,想用就用,不想用就不用。

原来公司逼着我在用,现在我当头了,奶奶的自己写个函数,用自己的,不用smarty了。

那些支持用的,说美工什么不习惯的,美工,在我这里 ...
对对对对对对,美工就是用来想象页面应该是个什么样子的,有灵感就行,嘿嘿。

作者: hxcan   发布时间: 2008-01-25

看完这个帖要43分钟。。。累死我了。。。。

摸版用不用看需要吧。。。

不过我觉得系统的设计比较重要。。。约定好一些规范,开发起来问题相对少点。。。

感觉:重要还是在设计,设计。。。

作者: hxcan   发布时间: 2008-01-25

强烈支持楼主的观点,

楼主并没有说不用模板,让逻辑和HTML混杂。而且说的很明确,一个文件是逻辑,一个文件是视图,中间一个include,我觉得这种方法很好,没必要再搬一个smarty(不知道拼对没有,从没用过)进来。

楼主奉承的观点是要用模板,只是用PHP本身来构建,并且并没有否定MVC中的VIEW层,我强烈同意并支持!!

:victory: :victory:

作者: lmhllr   发布时间: 2008-01-26

smarty 可以不用。但是不可以不会。 但是模板与代码的剥离是必须要做的。 否则会死人的

作者: neuron   发布时间: 2008-01-28

只用npp++,基本功很重要。。

作者: 大白菜芯   发布时间: 2008-01-29

如果精通smarty再说这些话,大家会佩服你,因为你超越了smarty
如果没用过就说这些话......

作者: ct_174880859   发布时间: 2008-01-29

我不否认LZ的能力,或许你不用模板引擎也可以将一个项目做得很好,但是你敢保证以后别人接手维护你这个项目的时候,也能像你一样做得那样好么?即使他能做到,想必也要花些时间来熟悉你弄出来的那套东西吧?
如果这个世界什么都可以按照自己的想法随意而为,那我们还制定一大堆所谓的标准做什么?用模板引擎就是因为它的通用性、标准性,它在团队协助开发中所起到的作用是显而易见的。

作者: 星野天河   发布时间: 2008-02-07

顶下楼主~!

作者: 拎壶Dè公子   发布时间: 2008-02-13

其实,我也觉得用PHP写HTML,然后INCLUDE进来就可以了
毕竟PHP的功能要比SMARTY大。。。
而且用SMARTY还要学习SMARTY。。。
不过,模板写在第三方库上似乎是标准了

作者: fly_yang   发布时间: 2008-03-04

看了此帖,很有收获:把PHP学精, SMARTY原理弄清楚,自己能够写模板用,才是正道~!

作者: willko   发布时间: 2008-03-04

一般来说,有过几年PHP经验的,都会这样:
一开始:不用模板,也不会用
然后:学会用模板,开始用,到处用,赞美模板,说什么分离啦、适合大型项目啦,团队开发啦
最后:觉得模板纯粹是脱了裤子放屁,于是又不用了,自己弄个框架,include搞定

作者: hipfish   发布时间: 2008-03-04

ls的   框架是必须要包括模板引擎的 不然怎么会叫做mvc...

作者: hailin   发布时间: 2008-03-04

模板引擎
我们就没有使用模板引擎, 都是规定好模板页面的规范而已
但是在模板文件不是以文件存在, 而是存在数据库里的时候, 如何去解释这些标签, 也许这里更需要模板

作者: marvin   发布时间: 2008-03-04

我来说一句:这个帖子从开始到现在应该有一个月了,这样讨论有意义吗?
还不如PHPer 在实践找到适合自己的引擎,适合项目的引擎吧!!!!

作者: edmond   发布时间: 2008-03-07

smarty也是用一些语句控制模板,比如{{{id}}}
用php分离也一样,比如<?php echo $id;?>
有什么区别,引用写好的M层,用C层控制,至于V层写成TMDsmarty的{{{id}}}和php写的<?php echo $id;?>有tm屁差别。
支持楼主

作者: 大地MAC   发布时间: 2008-03-07

SMARTY是要实现MVC结构的 和美工没什么关系。


      不用SMARTY你可能在 显示层来处理一些业务逻辑方面的东西。

      这种东西多了,就对代码的重用,迁移,造成很大的影响。

    当然本质上来说,用PHP输出也没啥。再再本质到低,不管啥语言,都是IF,WHILE,FOR.....

    其实我认为,良好的设计模试才是最重要的。

  SMARTY很好的给了我们这样一个便利。



  开车怎么最舒服。想往哪开都行最舒服。

   不过车多了,谁想怎么开就怎么开,那么就乱了。呵呵~~

[ 本帖最后由 wtfyygtpgf 于 2008-3-21 18:21 编辑 ]

作者: hobbs136   发布时间: 2008-03-08

smarty 这样的模板确实没什么大的作用
如果你现在不会用smarty ,完全可以不用学它,用不用模板引擎跟符合不符合 MVC 模式,一点关系都没有
模板引擎用在view端,逻辑处理都已经在controller 端完成了,view 只是负责显示 从Model 取出来的经过 controller 处理的数据而已,一般的用的模板引擎也就是个变量替换的工作而已,把 <?php echo $var ?> 换成 {var} ,还有就是自定义一大堆什么时期、字符串函数,用它模板引擎自己的语法定义一套已经存在php标准函数的功能,这样做没有任何意义
再结合我做的大型php项目来看,php MVC完全可以扔掉 smarty这样的模板引擎,不用模板引擎的理由:

效率低下,echo $var 是最快的,模板最终输出的HTML都要经过 替换,显然比直接用php输出函数慢,至于说文件缓存什么的,用其他的方式也可以很容易实现

增加学习成本,smarty手册里有许多smarty定义的函数,这是画蛇添足之举,那些函数非php标准,一个模板引擎的功能无非就是 单个变量替换( echo() ),循环输出变量( while() foreach() ),引入其他模板( include ),简单的字符、时间计算等,这些只是涉及到变量表现形式并不涉及到逻辑结构,所有越简单越好


随便聊聊我的意见

作者: kulten1280   发布时间: 2008-03-20

随便聊聊

作者: wtfyygtpgf   发布时间: 2008-03-21

我就是个小民工,作个一千多的小网站..我来参观下

作者: xiake   发布时间: 2008-03-22

楼主言之有理啊,smarty就是php编得,原理和楼主得一样,

smarty是php语言得扩展,引领一种规范,而且这种规范是好的,让更多得人能够去学习分离得思想,所以无论怎样,它作为一个新生事物,是有利于发展的,那么它就是好的,我很支持!

作者: luzhou   发布时间: 2008-03-22

Smarty 又不是很难学, 你自己写的模板引擎可能更麻烦, 最重要的是Smarty已经经过许多许多许多人的测试了, 你有时间和精力去测试你自己写的模板嘛, 不要跟我说测试不重要

作者: aksoft   发布时间: 2008-03-26

用smarty确实没必要,都是花哨功能,我对smarty不熟悉,我只模糊看到了什么输出缩进功能。

这不是脱裤子放屁吗??我为啥不把那缩进的几个空格写到HMTL里呢??

而且,看看smarty的体积,90多 个K吧,你一个页面才多大,超过90的没多少吧??

也许包含一个smarty比你页面的总执行时间还长,很有趣吗??

许多人把smarty当成一门语言来学,smarty像什么,独立于PHP之外的 一门编程语言???
他不还是要靠PHp才能运行,还不是得编译成PHP代码,有必要搞的这么复杂吗??有必要如此被神话吗??

模板引擎还是要用的,确实很方便,但是smarty这样的,大可不必考虑,要用就用一个轻量级的,或者自己写一个模板解析函数,就像DZ那样,简简单单,一K大小,性高能,又方便。能做的事情也不见得就比smarty少

作者: aiway   发布时间: 2008-03-27

厉害

作者: joedarkangel3   发布时间: 2008-04-03

DZ中的各种应用,咱们经常使用的都有了吧。

DZ还不是一个函数就搞定了,2,3十行的代码吧。

DZ的模板解析函数,修改一下,就能成通用的了,拿来用,效果绝对比smarty好的多,

测试一下,include文件花费的时间你就知道了,我看过网上的一些关于smarty性能的测试。他们的测试没有将包含smarty本身的时间加进去,这根本没有任何意义。

smarty最大的缺点是他的体积庞大,而不是他的代码不优秀,功能不好用。

smarty应该跟DZ学一学,平时就运行一个函数,只有在需要解析模板时,才会将模板解析部分的代码动态包含进来。

smarty如果也这样,他的主文件无疑可以做的很小,也许只有几百个字节而已。他的性能底下问题无疑可以解决了。因为在网站建成以后,也许一年半载都不见得会再次解析一次模板,哪怕功能再多,效率再低下,都不是问题。没谁会隔3,5秒就更换一次模板

难道外国人都是死脑筋吗??还是他们对他们的服务器很有信心

期待高手修改smarty,让主文件只负责检测缓存是否过期,负责包含缓存文件。如果有这样的版本的话,我一定会投入smarty的怀抱,虽然smarty的功能我认为过于花哨,但是我不得不承认,不谈性能的话,他真的很强大。

作者: fhjr999   发布时间: 2008-04-26

效率低下,echo $var 是最快的,模板最终输出的HTML都要经过 替换,显然比直接用php输出函数慢,至于说文件缓存什么的,用其他的方式也可以很容易实现

smarty提到的文件缓存,就是一个HTML,PHP混杂的脚本,就跟你自己不使用模板引擎时写的没什么区别。

模板引擎会降低效率的地方在于,你需要先将你本来计算好,存在一个变量中的数据(DZ并不是这样的,DZ的主函数仅仅返回缓存文件的路径,使用的时候要用include包含主函数,DZ省略了这个将数据压入数组,再取出的消耗,DZ的这种模式感觉很适合一些专用的模板引擎,但是通用的不太合适,使用起来不够亲切,个人观点),压缩进一个数组,然后在编译好的缓存文件中输出时,是从数组中取值,这无疑要比你省略这个过程,在模板相应位置直接echo来的慢一些。

在一个列表页,一个列表仅仅需要传入一个查询结果的ID,其他需要传入的数据也不大,这点消耗算不得什么。在文章的内容页,内容比较多的话,消耗比较大一些,但通过一些小技巧,也完全可以仅仅传入一个文章的ID。

那为什么这么多人大呼smarty慢呢??那是因为我上面说的smarty的体积问题,90K的体积相对于一个普通页面来说,实在过于庞大了,呼吁高手将smarty的主函数,与他的解析函数分离开,这样,smarty绝对是一个传说级武器。

[ 本帖最后由 fhjr999 于 2008-4-26 15:14 编辑 ]

作者: sunningan   发布时间: 2008-04-26

楼主火星人!

你自己当然想怎么写就怎么写。。忽忽~
但是你拿出来发布当然要用模板系统了  还有团队开发 大的程式是需要协同开发的
难道不成你PHPER 和美工干一样的活?

作者: fhjr999   发布时间: 2008-04-26

模板引擎估计真的是一个大笑话

作者: fhjr999   发布时间: 2008-04-26

所以这个帖子有必要再顶一下

作者: haierspi   发布时间: 2008-04-28

我也�X得像SMARTY的那些有�c�U~~~�]什么���H意�x..老是正�t匹配...速度太慢了...

作者: 七月十五   发布时间: 2008-06-14

这个帖子有必要精华和高亮一下,方便查阅

作者: 七月十五   发布时间: 2008-06-15

十五兄,没必要这样吧,仁者见仁,智者见智,就我个人来说,我还是蛮喜欢模板引擎的,当然,不包括smarty

作者: wenfeng2   发布时间: 2008-06-15

引用:
原帖由 fhjr999 于 2008-6-15 21:32 发表
十五兄,没必要这样吧,仁者见仁,智者见智,就我个人来说,我还是蛮喜欢模板引擎的,当然,不包括smarty
只能说明你还处于社会主义初级阶段!

作者: 七月十五   发布时间: 2008-06-15

引用:
原帖由 fyland 于 2008-6-15 22:42 发表

只能说明你还处于社会主义初级阶段!
呵呵,smarty那么流行,不是没有理由的。

作者: fhjr999   发布时间: 2008-06-15

时经

作者: fyland   发布时间: 2008-06-15

引用:
原帖由 fhjr999 于 2008-6-16 08:55 发表


呵呵,smarty那么流行,不是没有理由的。
流行只能说明满足初级用户的需求。因为初级程序远远远多于高手。尽管我也只是初级,但我明白这个简单的道理。
就像window和linux一样。

作者: fhjr999   发布时间: 2008-06-16

秒经

作者: hjlice   发布时间: 2008-06-16

如果模板引擎是一个笑话的话,那么PHP本身就是一个笑话

作者: fyland   发布时间: 2008-06-16

引用:
原帖由 pylong 于 2008-6-16 11:39 发表
如果模板引擎是一个笑话的话,那么PHP本身就是一个笑话
此话怎讲?
这里讨论的“模板引擎”说的是类似于smarty这样的用PHP写的模板解析程序。看来楼上的连讨论的主题都没搞清楚啊!

作者: pylong   发布时间: 2008-06-16

是应该辩证的看待问题,但太过偏激了都不是好事,萝卜青菜各有所爱,你不喜欢不代表别人不能喜欢

作者: pylong   发布时间: 2008-06-16

从头看到尾,对我来说,收获很大,

谢谢, 毫秒经,水下,别介意

作者: fyland   发布时间: 2008-06-16

引用:
原帖由 fyland 于 2008-6-16 11:47 发表

此话怎讲?
这里讨论的“模板引擎”说的是类似于smarty这样的用PHP写的模板解析程序。看来楼上的连讨论的主题都没搞清楚啊!
我对SMARTY持保留态度
不过对于楼主的结论: 模板引擎简直就是一个大笑话
也不敢苟同
模板引擎,不是PHP特有的,但在PHP这门近乎有点奇迹的语言中存在是必然的。

作者: netbuddy   发布时间: 2008-06-16

好早的帖子 被who 顶上来了 ??

作者: god123456   发布时间: 2008-06-16

   要顶一下  或许PHP真是个笑话

作者: pylong   发布时间: 2008-06-17

哈哈 我原来也有LZ同样的想法







you84.com 公交搜索网 -- 坐公车,巴士一下,你就知道 ;全国最强劲的公交搜索引擎,提供全国400多个城市的公交搜索,让你在最短的时间找到最佳的乘车方案.

作者: thaiki   发布时间: 2008-06-17

模板的思想是不错的,即使不用smart等,始终自己还得弄个类来实现同样的分离工作,异曲同工

作者: fzm010   发布时间: 2008-06-17

偶趋向于自己写模板,用起来效率高,但是在团队的话,还是要用一些比较流行的





you84.com 公交搜索网 -- 坐公车,巴士一下,你就知道 ;全国最强劲的公交搜索引擎,提供全国400多个城市的公交搜索,让你在最短的时间找到最佳的乘车方案.

作者: webcgo1   发布时间: 2008-06-20

引用:
原帖由 thaiki 于 2008-6-17 11:51 发表
好早的帖子 被who 顶上来了 ??
me

作者: webcgo1   发布时间: 2008-06-20

我发这个帖子是有感于当初找工作时遇到的情况,一个垃圾的smarty让我直接不敢投简历(因为我不会)。

从我的经历来讲,对于新手进入一个公司之后要能快速的完成任务,而且要敢想敢做。

我历来鄙视以资历论英雄的人。有些“高手”的经验已经根深蒂固,所以在我们招人的时候直接不要这种人。

作者: webcgo1   发布时间: 2008-06-20

引用:
原帖由 hobbs136 于 2008-6-20 16:33 发表
我发这个帖子是有感于当初找工作时遇到的情况,一个垃圾的smarty让我直接不敢投简历(因为我不会)。

从我的经历来讲,对于新手进入一个公司之后要能快速的完成任务,而且要敢想敢做。

我历来鄙视以资历论英雄 ...
我不会smarty,一样投,大公司不看这个的……
执着于smarty的我还不乐意去呢,肯定是个烂公司

作者: 七月十五   发布时间: 2008-06-20

引用:
原帖由 fyland 于 2008-6-16 11:25 发表

流行只能说明满足初级用户的需求。因为初级程序远远远多于高手。尽管我也只是初级,但我明白这个简单的道理。
就像window和linux一样。
意思就是说,windows只能满足初级用户的需求喽??
不知道这个初级,高级是怎么划分的,我玩游戏的话,哪个高级,哪个低级??

作者: hobbs136   发布时间: 2008-06-20

其实smarty的确受到很多非议,但也有大公司在用,证明它有存在的价值

作者: slawdan   发布时间: 2008-06-20

惹出这么多事来,早知道的话我就不挖这个帖子了
等同于提升主题
http://bbs.phpchina.com/viewthre ... p;page=17#pid469427

作者: fhjr999   发布时间: 2008-06-24

引用:
原帖由 hobbs136 于 2007-2-4 09:28 发表
昨日我在写一些代码,正好手头没有smarty,而且也不能上网,后来,我自己写了一个模板引擎。但是后来我又想起一句话,php本身就是一个模板语言。于是我便发现了这个笑话。
我可以直接将php输出语句写到html离,取出 ...
  那么楼主只是理解到smarty简单打印出 “ hello” 的入门层次。 :titter: :titter: :titter: :titter: :titter: :titter: :titter:

作者: pylong   发布时间: 2008-06-24

所有的嵌入式脚本语言都是模板,但是模板还是被广泛接受。

不是没有道理的。

像那些CMS,如果你让初级用户去学习编程,显然很难被他们接受。而将CMS内部的数据,列表等封装成标签,供用户去调用,就方便的多的多了。

作者: 七月十五   发布时间: 2008-06-24

看来php真是不能和JAVA比,门槛真的很低,看看这上面这么多肤浅的人就知道,PHP还是小了点!

作者: jianjin   发布时间: 2008-06-24

我说两点:
第一,你开发的时候使用还是不使用模板(你自己开发的模板引擎也算),如果你从来不使用的话,我真的怀疑你都做过什么项目。

第二,如果你使用模板引擎了就别说smarty不好,你自己开发的模板引擎比smarty还好?我相信你还没这样的水平,可能smarty里有我们用不到的,你可以对smarty稍作修改,更适合你的项目,当然也要有这样的实力才行。

最后,我们如果明白了这两点,关于smarty,还有什么需要争执的吗。

作者: fhjr999   发布时间: 2008-06-24

很热闹啊。

不过看很多人的留言怎么都不到点子上呢?
楼主的意思是php本身就是一个模板语言,其他的模板引擎都是多此一举。
打个不太恰当的比方:
你和李四是老乡,本来可以用同一种方言交流的。
现在你引入了 张三(也是你老乡,但是他跟你只说普通话)这么一个模板引擎。
现在好了,你得学普通话了(相当于学模板引擎标签)。然后用普通话跟张三说,然后张三再转达李四。
看起来是时髦了(多会了一门语言),但是效果好像没啥变化,效率还低了。
模板的用处在于 分离 业务逻辑 和 表现逻辑 而不是分离php代码和html代码。
依赖于程序员的设计和编码,在html中混用php代码同样可以分离 业务逻辑 和 表现逻辑。
从这点上来讲,我不需要写什么自己的一套模板引擎。
我们有现成的“php模板引擎”----即php解释程序本身。
只不过你使用了一种模板引擎的话 是带有一点强制性分离的味道。

当然对于一些安全问题,比如用户可以更改模板之类的应用,直接使用php就不如增加一层模板引擎安全了。
因为在模板引擎里面我们可以关闭一些用户不能使用的功能。

[ 本帖最后由 zyzzyva2007 于 2008-7-27 08:02 编辑 ]

作者: cqyd505   发布时间: 2008-06-25

引用:
原帖由 Ben 于 2007-2-4 14:29 发表
月经帖~
赞版主!

写程序的都是比较顽固的,特别是这种没有对错的问题,总是争得面红耳赤,不知道发帖子别人回复是不是有积分啊,我也发了个关于模板的,居然沉下去了

作者: hand1573   发布时间: 2008-06-25

这个帖子还有完没完了!

作者: zyzzyva2007   发布时间: 2008-07-27

标题吸引人

作者: xhc0755   发布时间: 2010-12-22

热门下载

更多