模型视图控制器 - 是否值得学习 PHP 模板的 Smarty


model view controller - Is it worth learning Smarty for PHP templating?

我正在使用类似MVC的架构构建一个简单的10页网站。值得学习 Smarty 模板引擎吗?

模板引擎会增加开销。

只有当您需要让其他人创建/编辑模板并且您不希望他们能够使用 PHP 时,才应该使用模板引擎。

如果您是唯一的维护者,请坚决使用普通的PHP。如果你的团队可以信任(他们都是开发人员),请坚持使用纯PHP。如果你的设计师不懂PHP,或者更重要的是,让他们使用PHP是危险的,那么使用Smarty或其他模板引擎。

话虽如此,您想知道是否应该学习Smarty。如果使用 Smarty 创建模板,则需要学习 Smarty。如果你只是实现Smarty模板引擎,你真的不需要学习Smarty。

Smarty 是易于学习和使用的模板引擎,但我强烈建议学习和使用 Twig。

没有必要。

一个 10 页的网站很容易构建。 如果你想用Smarty,一开始就得多花一点时间去学习呢~

PHP本身就是一种不错的模板语言。除非需要高级功能,否则自定义解决方案只会使听起来相当简单的设置复杂化。

我从来没有研究过聪明。其他人吓跑了我,说这很复杂。我现在所做的几乎所有事情都使用 Twig,即使是小东西。即使对于一个小网站来说不值得,我认为从长远来看值得学习 - 在模板继承和块方面打下良好的基础是绝对值得的。

看看这个:

<?php echo htmlspecialchars('$var, ENT_QUOTES, 'UTF-8') ?>

与。

{{ var|escape }}

美味:

{% for i in 0..10 %}
  * {{ i }}
{% endfor %}

我很久以前就用过Smarty,我建议你没有必要像那样使用模板引擎。Smarty减慢了整个系统的速度,因为它的核心源代码非常复杂,而且在某种程度上是不必要的。如果我对模板引擎有建议,我会说:

1)使用一些基本和轻量级的模板引擎,如XTemplate。我不确定它是否仍在开发中,但它确实很有用,所有内容都在一个类文件中,随时可以使用。语法也清晰而甜美。

2) 编写您自己的模板引擎,以便您可以自己自定义最适合您当前系统的模板引擎

但是,对于可以控制所有内容的小型项目(少于 5-7 页),则可能不需要使用模板引擎。

动态生成 HTML 时,模板语言是一个不错的选择。无论是Smarty还是其他东西(PHP),Razor或Forms(ASP.NET),或者完全不同的东西(也许是John Resig的客户端微模板框架)。

我同意上面所说的。对于包含 10 页的简单网站,请在 MVC 模型上使用 PHP,或使用轻量级快速的模板引擎,如 RainTPL 或 Savant。

该测试可能是有偏见的,因为它是由RainTPL的作者发布的。但无论如何,我使用 Apache ab 实用程序对几个模板引擎进行了基准测试,并且可以确认这些结果。RainTPL很快。