为什么我应该在PHP中使用模板系统?[已关闭]

2022-08-30 09:31:54

为什么我应该在PHP中使用模板系统?

我的问题背后的原因是:PHP本身就是功能丰富的模板系统,我为什么要安装另一个模板引擎?

到目前为止,我发现的仅有的两个优点是:

  1. 更清晰的语法(有时)
  2. 模板引擎通常不够强大,无法实现业务逻辑,因此它迫使您分离关注点。使用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>

我真的看不出有任何区别。


答案 1

是的,正如你所说,如果你不强迫自己在PHP内部使用模板引擎(模板引擎),它变得很容易滑倒并停止分离问题。

但是,那些在分离关注点时遇到问题的人最终会生成HTML并将其提供给smarty,或者在Smarty中执行PHP代码,因此Smarty很难解决您的关注点分离问题。

另请参阅:


答案 2

人们使用模板系统的主要原因是将逻辑与表示分开。这有几个好处。

首先,您可以将模板交给网页设计师,他们可以根据需要移动内容,而不必担心保持代码的流动。他们不需要理解PHP,只需要知道不考虑特殊标签。他们可能必须为几个标签学习一些简单的语义,但这比学习整个语言要简单得多。

此外,通过将页面拆分为单独的文件,程序员和设计人员可以同时在同一“页面”上工作,根据需要签入源代码管理,而不会发生冲突。设计人员可以针对代码的稳定版本测试其模板视觉对象,而程序员则针对自己的副本进行其他可能的重大更改。但是,如果这些人都在编辑同一个文件,并且必须合并不同的更改,则可能会遇到问题。

它还强制实施良好的编程实践,使业务逻辑远离表示逻辑。如果将业务逻辑与演示文稿混合在一起,那么如果以后需要以不同的方式呈现它,则提取它时会更加困难。如今,Web应用程序中不同的演示模式越来越流行:RSS / ATOM源,JSON或AJAX响应,手持设备的WML等。使用模板系统,这些通常可以完全使用模板来完成,并且不需要或很少更改其他任何内容。

然而,并非每个人都需要或欣赏这些好处。PHP相对于Java / Python / Ruby / etc的优势在于,您可以快速破解带有一些逻辑的网页,这一切都很好。


推荐