【发布时间】:2010-09-30 23:07:59
【问题描述】:
为什么要在 PHP 中使用模板系统?
我的问题背后的原因是:PHP本身是功能丰富的模板系统,我为什么要安装另一个模板引擎?
到目前为止,我发现的唯一两个优点是:
- 更简洁的语法(有时)
- 模板引擎通常不足以实现业务逻辑,因此它迫使您分离关注点。使用 PHP 进行模板可以引诱您绕过模板原则并重新开始编写代码汤。
...与缺点相比,两者都可以忽略不计。
小例子:
PHP
<h1><?=$title?></h1>
<ul>
<? foreach ($items as $item) {?>
<li><?=$item?></li>
<? } ?>
</ul>
聪明
<h1>{$title}</h1>
<ul>
{foreach item=item from=$items}
<li>{$item}</li>
{/foreach}
</ul>
我真的看不出有什么不同。
【问题讨论】:
-
感谢您的每一条评论。它帮助我理清思路。现在我使用 Zend Framework,并且会向所有人推荐相同的方法。现在,我将 Smarty 等视为通向更复杂、更高效、更具挑战性和更有趣的框架开发世界的一步。没有更多的 mysql_queries 和 include_onces :-)
-
一方面,您使用的是 php 短标签,我同意这会使事情变得更好,但您会因此而被 PHP 社区排斥。比较
<?php echo $foo ?>和{$foo}以获得公平的比较,然后 smarty 在可读性方面明显胜出。 -
@DGM 你会因此而被 PHP 社区排斥 - 首先,我严重怀疑这个帐户(许多著名的开发者都提倡短标签)。第二,... [可怕的学术] PHP 社区?我们不是一群喜欢在沙盒里玩耍的有趣的、喜欢污垢的赤脚孩子吗?:) 免责声明:我花了 6 到 8 年时间研究 PHP,而忽略了真正美丽而强大的编程语言,现在我 32 岁了,真的很后悔!违反 PEP8 - 这就是你会被排斥的地方,这真的很重要。 PS。我敢于假设 PHP 一开始的实际目的是模板系统。没有?
标签: php smarty template-engine