首页 | 新闻 | 交流 | 问吧 | 文档 | 手册 | 下载 | 博客

收藏此问题 发表新评论

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

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

恩,同感 ,而且如果非要用的话,我也不会考虑Smarty,太过臃肿,它像做的事情太多,做了它很多不该做的东西,我打算自己写一个。
昵称: 渠王  时间: 2012-05-23 11:08:44
为了切换多模版方便吧
昵称: phpscott  时间: 2012-05-23 11:15:22
页面大了,就知道模板引擎是多么必要了。
昵称: redvex_00  时间: 2012-05-23 11:19:23
redvex_00 发表于 2012-5-23 11:19
页面大了,就知道模板引擎是多么必要了。

页面大小和模板有什么关系?
{%%}比<?=?>有什么更高明的地方?
昵称: himan  时间: 2012-05-23 11:23:57
phpscott 发表于 2012-5-23 11:15
为了切换多模版方便吧

多模版也是一样的啊,模板中的这些模板语言标签只不过相当于html页面与php程序之间的接口,但是php程序本身就是可以嵌套在html页面中的,并不需要额外再给它套个接口啊?
昵称: 渠王  时间: 2012-05-23 11:35:04
本帖最后由 冯.于安 于 2012-5-23 12:34 编辑
himan 发表于 2012-5-23 11:23 static/image/common/back.gif
页面大小和模板有什么关系?
{%%}比有什么更高明的地方?

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

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

这正是人家为什么说phpwind的模板比较乱, discuz的模板比较易懂的道理. 事实就摆在眼前.
楼主不要来秀下限.
昵称: 冯.于安  时间: 2012-05-23 12:32:47
冯.于安 发表于 2012-5-23 12:32
你的项目也只有显示变量的了,

请问,foreach怎么写?

你怎么知道我的项目什么样?能掐会算?
foreach该怎么写怎么写,莫不成用了模板就没了循环?你就算写成
{% 我不是循环 %}
这里还是要循环
{% /我不是循环 %}
昵称: himan  时间: 2012-05-23 13:01:26
himan 发表于 2012-5-23 13:01
你怎么知道我的项目什么样?能掐会算?
foreach该怎么写怎么写,莫不成用了模板就没了循环?你就算写成
{ ...

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

我都试了好几年了,在原生态循环上没见什么无法逾越的困难。
当然了能像perl那样for更好
昵称: himan  时间: 2012-05-23 14:36:56
我也一直觉得模板技术是个累赘,zend framework中原生态的不就很好吗
昵称: zhoujianhe  时间: 2012-05-23 14:56:49
冯.于安 发表于 2012-5-23 12:32
你的项目也只有显示变量的了,

请问,foreach怎么写?

呵呵,在你大牛面前秀秀下限难道不可以吗,说实话我这里真心不希望看到就是你的留言,在phpc看了一些帖子,每每看到你的留言总让人觉得心里不舒服,小弟直言,正真的大牛不是你这个调调的哦
昵称: 渠王  时间: 2012-05-23 16:38:37
渠王 发表于 2012-5-23 16:38
呵呵,在你大牛面前秀秀下限难道不可以吗,说实话我这里真心不希望看到就是你的留言,在phpc看了一些帖子 ...

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

你的智商就高了.
昵称: 冯.于安  时间: 2012-05-23 17:36:59
口水仗
模板挺好的,太复杂的模板就不太好了
选择一个合适的模板 比较重要..
昵称: zhuli86122068  时间: 2012-05-29 14:48:21
网站改版可以只改模板不改php程序的
如果你的程序足够的可扩展。。
打个比方。有一个模板语法:
{news num="10" cid="5" order="created_at desc"}
我是循环
{/news}
类似这样的东西,可以让模板无限可扩展,php程序几乎可以不改,就可以做网站改版了。。
昵称: phpin  时间: 2012-05-29 15:59:59
楼主是不是经常把模板和php代码混着写,那样改版确实是个头疼的问题
昵称: phpin  时间: 2012-05-29 16:00:49
方便改版的说法我很认同。

另外有些小公司做站,不会循环嵌套的美工只学习模板语法,就可以制作网站了
昵称: phptree  时间: 2012-05-30 01:30:28
还好吧,能解决问题就是OK的,老板请你来才不管你是用原生态还是模板技术,解决不了问题你就是累赘....
昵称: leejianjun  时间: 2012-05-30 08:24:32
又来了又来了,有年头了
昵称: quanhaier  时间: 2012-06-01 11:00:42
经过这几年的折腾,哥感觉模板引擎是个鸡肋,如果美工不懂程序,套模板的还是程序员。
昵称: xiaochong0302  时间: 2012-06-01 12:20:31
在学习框架的时候,也发现模版是个累赘.....有同感....同样能实现的功能,还要绕一大圈!烦死了都,一个不小心,还有缓存...
昵称: bendan  时间: 2012-06-01 12:40:03
himan 发表于 2012-5-23 11:23
页面大小和模板有什么关系?
{%%}比有什么更高明的地方?

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

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

典型的转牛角尖行的~~
昵称: redvex_00  时间: 2012-06-01 16:23:09
弱弱的问一句,模板系统的数据循环和PHP的数组循环有什么区别!
昵称: 独孤飘人  时间: 2012-06-19 17:06:17
phpin 发表于 2012-5-29 15:59
网站改版可以只改模板不改php程序的
如果你的程序足够的可扩展。。
打个比方。有一个模板语法:

这种模板直接获取数据,与系统太紧密,一旦需要更换模板引擎或换系统,将有极大工作量。
v应该只显示,而不负责数据获取。
如果一辈子不换模板引擎或系统,倒是没问题,但谁都不知道什么时候有这种需求。
昵称: kawais  时间: 2012-06-20 17:25:00
himan 发表于 2012-5-23 14:36
我都试了好几年了,在原生态循环上没见什么无法逾越的困难。
当然了能像perl那样for更好 ...

我偏重于你的观点,那个版主也不过是徒有虚名罢了。
昵称: helloguy  时间: 2012-06-21 02:44:30
我也觉得模板是个累赘,用heredoc效果不一样么?至于循环,对于那些列表类数据完全可以通过ajax向php文件请求数据在前台用js来实现。
有个好的web前端就可以,他只要懂js就不需要会模板。
昵称: 星汉  时间: 2012-06-21 06:57:45
redvex_00 发表于 2012-6-1 16:23
说一下你做过的项目级别。

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

你还真搞笑,我说的这个方案在目前很多CMS里都在使用,你的回复都的很无厘头!
你搞过什么样的大项目?
请你给一个更好的方案吧。
昵称: phpin  时间: 2012-06-21 09:43:16
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 09:53:43
redvex_00 发表于 2012-6-1 16:23
说一下你做过的项目级别。

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

我非常讨厌和你这种人讨论问题,上来先贬低别人来抬高自己。
你有能力请回答问题,给出更好的方案,让大家来崇拜你啊!
昵称: phpin  时间: 2012-06-21 09:59:39
phpin 发表于 2012-6-21 09:53
我说的只是一个简化模板实现的方法,跟用什么模板引擎关系不大。几乎所有模板引擎都可以实现类似功能。
...

我指的的是数据获取这块,比如其中的order="created_at desc",要处理这种东西,模板引擎需和系统高度集成。这不符合高内聚低耦合的设计原则。
昵称: kawais  时间: 2012-06-21 10:55:06
kawais 发表于 2012-6-21 10:55
我指的的是数据获取这块,比如其中的order="created_at desc",要处理这种东西,模板引擎需和系统高度集 ...

现在常见的CMS比如dede,Forum比如discuz,他们的耦合性都很高,往往都是牵一发而动全身。
昵称: xiaochong0302  时间: 2012-06-21 13:03:34
模板还是有必要的,但是模板语法就没必要了。美工能学模板语法,为什么不能学习简单的PHP语法
昵称: ue_dehua  时间: 2012-07-04 17:10:47
又是个月经贴~
昵称: byteboy  时间: 2012-10-07 20:28:42
himan 发表于 2012-5-23 13:01
你怎么知道我的项目什么样?能掐会算?
foreach该怎么写怎么写,莫不成用了模板就没了循环?你就算写成
{ ...

其实,,我真的同意 那个反对这篇贴子的意见 的人 绝对不是累赘。你套在里面,,我们就假设说可以,,那,美工与程序的分离怎么办,,,不要说 别人能能掐会算。
大家都是在讨论技术
昵称: 274123456  时间: 2012-10-14 10:46:30
phpin 发表于 2012-5-29 15:59
网站改版可以只改模板不改php程序的
如果你的程序足够的可扩展。。
打个比方。有一个模板语法:

哥,,,给个QQ号呗,我的QQ是:297549707------------你是我的偶像的啦
昵称: 274123456  时间: 2012-10-14 10:52:39
几乎所有的PHP模板框架都有“编译”功能,所以并不是每次调用模板都需要正则匹配的,不过性能还是会低于原生态的PHP。

PHP其实就是一套很好的模板工具,另设一套模板语法确实没有必要
昵称: 四不象  时间: 2012-10-15 10:17:51
讨厌smarty的路过
昵称: qwipw  时间: 2012-10-16 18:36:40
用了两年多的smarty~~去年果断放弃!维护成本太高~~
昵称: 化蝶自在飞  时间: 2012-10-21 19:19:58
我觉得使用模板最好的地方在于如果你的页面大了,你是不是要require其他页面来进行拼凑呢?这样就造成了一个文件读取的开销问题。如果你在模板里面载入文件,模板引擎可以把他编译成一个php文件这样的话只需要读取一个文件完成
昵称: iove6600  时间: 2012-11-12 10:53:46
我是菜鸟,我赞同楼主的观念。

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

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

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

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

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

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

昵称: 喀什麦田  时间: 2012-11-24 03:30:42
很多时候是为了安全和规范,v做的和cm做的区分开了,很多做v的是不允许去添加修改cm的,如果你的v都是原生态做的,cm还有什么安全可言?参照淘宝,或许你可以有所感觉,模板不是必不必须,是看你项目需求,如果真的没有分mvc的,个个都可以访问彼此的文件的话,还是什么安全可言?svn用过吧,有没有设置过某个人只可以访问没个文件夹?
昵称: 夏天小猪  时间: 2012-12-12 15:15:40
phpscott 发表于 2012-5-23 11:15
为了切换多模版方便吧

哈哈   经典
昵称: ses513ses  时间: 2013-01-24 21:20:32
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 16:03:52
ses513ses 发表于 2013-1-24 21:20
我是菜鸟,我赞同楼主的观念。

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

我想这一定是一种复杂的交互过程,哈哈    ajax
昵称: 北海情书  时间: 2013-02-07 19:28:44
太多<?php  头都晕了
昵称: 北海情书  时间: 2013-02-07 19:36:10
那用框架呢?
昵称: 北海情书  时间: 2013-02-07 19:38:57