+ -
当前位置:首页 → 问答吧 → 有没人觉得模板技术根本就是个累赘

有没人觉得模板技术根本就是个累赘

时间:2012-05-23

来源:互联网

虽然模板技术的初衷是为了让美工与程序分离,但模板文件中 大量的模板语言标签 与 直接用php语言嵌入其中 对于美工来说有什么区别?!没有区别!美工设计需要修改,像网站改版,如果用模板技术,模板跟着改难道程序就一定不用跟着改吗?!瞎扯淡!如果你说这样做也是为了便于代码的后期维护,那就更瞎扯淡了!便于代码维护最直接、效果最好的唯一方法就是注释!程序性能上就更不用说了,模板引擎里的大量正则替换能不影响程序效率吗,脚趾头想想都知道的事儿。这是我这几天研究模板引擎的所感所想,写出来跟大家讨论讨论,或许我的见解太浅薄,如果真是这样,那也是我为什么要把这些想法写出来的原因

作者: 渠王   发布时间: 2012-05-23

本来就是嘛,尤其是5.4以后鼓励短标签了,更没有用模板的必要

作者: himan   发布时间: 2012-05-23

himan 发表于 2012-5-23 11:01
本来就是嘛,尤其是5.4以后鼓励短标签了,更没有用模板的必要

恩,同感 ,而且如果非要用的话,我也不会考虑Smarty,太过臃肿,它像做的事情太多,做了它很多不该做的东西,我打算自己写一个。

作者: 渠王   发布时间: 2012-05-23

为了切换多模版方便吧

作者: phpscott   发布时间: 2012-05-23

页面大了,就知道模板引擎是多么必要了。

作者: redvex_00   发布时间: 2012-05-23

redvex_00 发表于 2012-5-23 11:19
页面大了,就知道模板引擎是多么必要了。

页面大小和模板有什么关系?
{%%}比<?=?>有什么更高明的地方?

作者: himan   发布时间: 2012-05-23

phpscott 发表于 2012-5-23 11:15
为了切换多模版方便吧

多模版也是一样的啊,模板中的这些模板语言标签只不过相当于html页面与php程序之间的接口,但是php程序本身就是可以嵌套在html页面中的,并不需要额外再给它套个接口啊?

作者: 渠王   发布时间: 2012-05-23

本帖最后由 冯.于安 于 2012-5-23 12:34 编辑
himan 发表于 2012-5-23 11:23 static/image/common/back.gif
页面大小和模板有什么关系?
{%%}比有什么更高明的地方?

你的项目也只有显示变量的了,

请问,foreach怎么写?
模板不是加快开发速度, 而是让结构明朗, html更具有语法性.
你不信, 写几个foreach对比一下就知道了.

这正是人家为什么说phpwind的模板比较乱, discuz的模板比较易懂的道理. 事实就摆在眼前.
楼主不要来秀下限.

作者: 冯.于安   发布时间: 2012-05-23

冯.于安 发表于 2012-5-23 12:32
你的项目也只有显示变量的了,

请问,foreach怎么写?

你怎么知道我的项目什么样?能掐会算?
foreach该怎么写怎么写,莫不成用了模板就没了循环?你就算写成
{% 我不是循环 %}
这里还是要循环
{% /我不是循环 %}

作者: himan   发布时间: 2012-05-23

himan 发表于 2012-5-23 13:01
你怎么知道我的项目什么样?能掐会算?
foreach该怎么写怎么写,莫不成用了模板就没了循环?你就算写成
{ ...

问题是你用php原生态写呀.
你试着写就知道复杂程度是多少了.

作者: 冯.于安   发布时间: 2012-05-23

冯.于安 发表于 2012-5-23 13:43
问题是你用php原生态写呀.
你试着写就知道复杂程度是多少了.

我都试了好几年了,在原生态循环上没见什么无法逾越的困难。
当然了能像perl那样for更好

作者: himan   发布时间: 2012-05-23

我也一直觉得模板技术是个累赘,zend framework中原生态的不就很好吗

作者: zhoujianhe   发布时间: 2012-05-23

冯.于安 发表于 2012-5-23 12:32
你的项目也只有显示变量的了,

请问,foreach怎么写?

呵呵,在你大牛面前秀秀下限难道不可以吗,说实话我这里真心不希望看到就是你的留言,在phpc看了一些帖子,每每看到你的留言总让人觉得心里不舒服,小弟直言,正真的大牛不是你这个调调的哦

作者: 渠王   发布时间: 2012-05-23

渠王 发表于 2012-5-23 16:38
呵呵,在你大牛面前秀秀下限难道不可以吗,说实话我这里真心不希望看到就是你的留言,在phpc看了一些帖子 ...

也许你所想的, 正是我想做的,
继续秀你的下限吧.  当你哪天问: 有没有人觉得月亮完全是累赘, 人类直接用电灯也可以完成.

你的智商就高了.

作者: 冯.于安   发布时间: 2012-05-23

口水仗
模板挺好的,太复杂的模板就不太好了
选择一个合适的模板 比较重要..

作者: zhuli86122068   发布时间: 2012-05-29

网站改版可以只改模板不改php程序的
如果你的程序足够的可扩展。。
打个比方。有一个模板语法:
{news num="10" cid="5" order="created_at desc"}
我是循环
{/news}
类似这样的东西,可以让模板无限可扩展,php程序几乎可以不改,就可以做网站改版了。。

作者: phpin   发布时间: 2012-05-29

楼主是不是经常把模板和php代码混着写,那样改版确实是个头疼的问题

作者: phpin   发布时间: 2012-05-29

方便改版的说法我很认同。

另外有些小公司做站,不会循环嵌套的美工只学习模板语法,就可以制作网站了

作者: phptree   发布时间: 2012-05-30

还好吧,能解决问题就是OK的,老板请你来才不管你是用原生态还是模板技术,解决不了问题你就是累赘....

作者: leejianjun   发布时间: 2012-05-30

又来了又来了,有年头了

作者: quanhaier   发布时间: 2012-06-01

经过这几年的折腾,哥感觉模板引擎是个鸡肋,如果美工不懂程序,套模板的还是程序员。

作者: xiaochong0302   发布时间: 2012-06-01

在学习框架的时候,也发现模版是个累赘.....有同感....同样能实现的功能,还要绕一大圈!烦死了都,一个不小心,还有缓存...

作者: bendan   发布时间: 2012-06-01

himan 发表于 2012-5-23 11:23
页面大小和模板有什么关系?
{%%}比有什么更高明的地方?

说一下你做过的项目级别。

要都是小项目的话,那就算了,和你说不清。

典型的转牛角尖行的~~

作者: redvex_00   发布时间: 2012-06-01

弱弱的问一句,模板系统的数据循环和PHP的数组循环有什么区别!

作者: 独孤飘人   发布时间: 2012-06-19

phpin 发表于 2012-5-29 15:59
网站改版可以只改模板不改php程序的
如果你的程序足够的可扩展。。
打个比方。有一个模板语法:

这种模板直接获取数据,与系统太紧密,一旦需要更换模板引擎或换系统,将有极大工作量。
v应该只显示,而不负责数据获取。
如果一辈子不换模板引擎或系统,倒是没问题,但谁都不知道什么时候有这种需求。

作者: kawais   发布时间: 2012-06-20

himan 发表于 2012-5-23 14:36
我都试了好几年了,在原生态循环上没见什么无法逾越的困难。
当然了能像perl那样for更好 ...

我偏重于你的观点,那个版主也不过是徒有虚名罢了。

作者: helloguy   发布时间: 2012-06-21

我也觉得模板是个累赘,用heredoc效果不一样么?至于循环,对于那些列表类数据完全可以通过ajax向php文件请求数据在前台用js来实现。
有个好的web前端就可以,他只要懂js就不需要会模板。

作者: 星汉   发布时间: 2012-06-21

redvex_00 发表于 2012-6-1 16:23
说一下你做过的项目级别。

要都是小项目的话,那就算了,和你说不清。

你还真搞笑,我说的这个方案在目前很多CMS里都在使用,你的回复都的很无厘头!
你搞过什么样的大项目?
请你给一个更好的方案吧。

作者: phpin   发布时间: 2012-06-21

kawais 发表于 2012-6-20 17:25
这种模板直接获取数据,与系统太紧密,一旦需要更换模板引擎或换系统,将有极大工作量。
v应该只显示,而 ...

我说的只是一个简化模板实现的方法,跟用什么模板引擎关系不大。几乎所有模板引擎都可以实现类似功能。
流行的CMS里也大量使用这种技术,这没什么坏处啊。

举几个例子:
1. dedecms
{dede:memberlist}
{dede:field.mid/}-{dede:field.uname/}<br />
{/dede:memberlist}

2. phpcms
{pc:comment action="get_comment" commentid="$commentid"}
评论ID:{$data[commentid]}  评论总数:{$data[total]}
{/pc}

3. 我在使用smarty时大量使用block,没发现任何不爽的地方!

作者: phpin   发布时间: 2012-06-21

redvex_00 发表于 2012-6-1 16:23
说一下你做过的项目级别。

要都是小项目的话,那就算了,和你说不清。

我非常讨厌和你这种人讨论问题,上来先贬低别人来抬高自己。
你有能力请回答问题,给出更好的方案,让大家来崇拜你啊!

作者: phpin   发布时间: 2012-06-21

phpin 发表于 2012-6-21 09:53
我说的只是一个简化模板实现的方法,跟用什么模板引擎关系不大。几乎所有模板引擎都可以实现类似功能。
...

我指的的是数据获取这块,比如其中的order="created_at desc",要处理这种东西,模板引擎需和系统高度集成。这不符合高内聚低耦合的设计原则。

作者: kawais   发布时间: 2012-06-21

kawais 发表于 2012-6-21 10:55
我指的的是数据获取这块,比如其中的order="created_at desc",要处理这种东西,模板引擎需和系统高度集 ...

现在常见的CMS比如dede,Forum比如discuz,他们的耦合性都很高,往往都是牵一发而动全身。

作者: xiaochong0302   发布时间: 2012-06-21

模板还是有必要的,但是模板语法就没必要了。美工能学模板语法,为什么不能学习简单的PHP语法

作者: ue_dehua   发布时间: 2012-07-04

又是个月经贴~

作者: byteboy   发布时间: 2012-10-07

himan 发表于 2012-5-23 13:01
你怎么知道我的项目什么样?能掐会算?
foreach该怎么写怎么写,莫不成用了模板就没了循环?你就算写成
{ ...

其实,,我真的同意 那个反对这篇贴子的意见 的人 绝对不是累赘。你套在里面,,我们就假设说可以,,那,美工与程序的分离怎么办,,,不要说 别人能能掐会算。
大家都是在讨论技术

作者: 274123456   发布时间: 2012-10-14

phpin 发表于 2012-5-29 15:59
网站改版可以只改模板不改php程序的
如果你的程序足够的可扩展。。
打个比方。有一个模板语法:

哥,,,给个QQ号呗,我的QQ是:297549707------------你是我的偶像的啦

作者: 274123456   发布时间: 2012-10-14

几乎所有的PHP模板框架都有“编译”功能,所以并不是每次调用模板都需要正则匹配的,不过性能还是会低于原生态的PHP。

PHP其实就是一套很好的模板工具,另设一套模板语法确实没有必要

作者: 四不象   发布时间: 2012-10-15

讨厌smarty的路过

作者: qwipw   发布时间: 2012-10-16

用了两年多的smarty~~去年果断放弃!维护成本太高~~

作者: 化蝶自在飞   发布时间: 2012-10-21

我觉得使用模板最好的地方在于如果你的页面大了,你是不是要require其他页面来进行拼凑呢?这样就造成了一个文件读取的开销问题。如果你在模板里面载入文件,模板引擎可以把他编译成一个php文件这样的话只需要读取一个文件完成

作者: iove6600   发布时间: 2012-11-12

我是菜鸟,我赞同楼主的观念。

我就觉得模板多此一举。我不知道搞大项目的时候,会不会有好处。

反正对于小项目,这些个模板都是累赘。

只要你的HTML里镶嵌了 别的语言,不管是PHP,还是模板语言。美工就不好单独修改。

我有一个思路,供大家参考。

美工独立负责HTML CSS ,phper 独立负责后台PHP MYSQL。

中间用 JQUERY 衔接。前台所有要的数据,都从利用JQUERY从后台加载,复杂的数据,先用JSON处理。

作者: 喀什麦田   发布时间: 2012-11-24

很多时候是为了安全和规范,v做的和cm做的区分开了,很多做v的是不允许去添加修改cm的,如果你的v都是原生态做的,cm还有什么安全可言?参照淘宝,或许你可以有所感觉,模板不是必不必须,是看你项目需求,如果真的没有分mvc的,个个都可以访问彼此的文件的话,还是什么安全可言?svn用过吧,有没有设置过某个人只可以访问没个文件夹?

作者: 夏天小猪   发布时间: 2012-12-12

phpscott 发表于 2012-5-23 11:15
为了切换多模版方便吧

哈哈   经典

作者: ses513ses   发布时间: 2013-01-24

himan 发表于 2012-5-23 13:01
你怎么知道我的项目什么样?能掐会算?
foreach该怎么写怎么写,莫不成用了模板就没了循环?你就算写成
{ ...

人家说的是用PHP写出来的“乱”   用自定义的模板标签编写起来结构清晰,比如
1、没有用模板的开发如下:
<html>
<body>
<ul>
<?php
foreach($data as $v)
?>

<li><?php echo $v;?></li>

<?php }?>
</ul>
</body>
</html>


2、用模板的开发如下:

<html>
<body>
<ul>
{loop $data $v}
<li>{$v}</li>
{/loop}
</ul>
</body>
</html>

看出模板标签最好的地方了吗?简洁!








作者: akstrom   发布时间: 2013-02-01

ses513ses 发表于 2013-1-24 21:20
我是菜鸟,我赞同楼主的观念。

我就觉得模板多此一举。我不知道搞大项目的时候,会不会有好处。

我想这一定是一种复杂的交互过程,哈哈    ajax

作者: 北海情书   发布时间: 2013-02-07

太多<?php  头都晕了

作者: 北海情书   发布时间: 2013-02-07

那用框架呢?

作者: 北海情书   发布时间: 2013-02-07