【问题标题】:What is a templating language?什么是模板语言?
【发布时间】:2011-04-30 21:47:33
【问题描述】:

我在某处读到 PHP 是一种模板语言。什么是模板语言?是什么让 PHP 成为一个?还有哪些其他模板语言?

【问题讨论】:

标签: php templating


【解决方案1】:

模板语言背后的前提是该语言“嵌入”在其他一些主文档中。具体来说,在您的平均文档中,文档的总大小主要是文档源而不是模板语言。

考虑两个人为的例子:

print "This is a simple document. It has three lines."
print "On the second line is my name: " + firstName
print "This is the third line."

This is a simple document. It has three lines.
On the second line is my name: $firstName
This is the third line.

您可以在第一个示例中看到,语言包装了文档文本。在第二个示例中,文档文本是最普遍的,只有一点点代码。

一些模板语言是成熟的通用语言,例如 PHP、ASP.NET 和 Java 的 JSP。其他的则更受限制,专门为模板设计,例如 Velocity 和 FreeMarker(两者都是 Java 实用程序)。

许多文字处理器,例如 Microsoft Word,都有自己的模板功能,通常称为“邮件合并”。

【讨论】:

  • 为什么“This”和“On”是蓝色的?就像每个句子的第一个字母一样,在您的第二个示例中,是蓝色的。
  • 因为系统认为它是源代码并试图对其进行着色。
【解决方案2】:

模板语言基本上是一种允许定义占位符的语言,这些占位符稍后应被替换以实现设计。显然,现代模板语言不仅支持占位符,还支持设计网页时经常需要的循环和条件。有些甚至支持更高级但仍然有用的技术,例如模板继承、宏和沙盒。

关于 PHP:由于 PHP 本身可能被插入到 HTML 中,因此它可以用作模板语言。另一方面,PHP 相当冗长,尤其是在未启用短标签的情况下。

Twig 是一个快速且功能丰富的模板引擎。我会推荐它而不是smarty。它提供了更多功能(最显着的是模板继承)并且速度更快。

【讨论】:

    【解决方案3】:

    PHP 不一定是一种模板语言,但由于它的解释方式,它可以通过测试。

    读取 PHP 文件时,仅查看 PHP 块标记(<?php?>)中的代码,其余代码传递到输出。所以一个 .html 文件可以被 PHP 解释器处理,什么都不会发生,HTML 会被输出。

    如果 HTML 文件的某些区域有 PHP 标记和代码,它将被解释并可能在这些位置输出一些数据。这可以被认为是一个模板。通常它的想法是拥有一个输出层,然后拥有与之相伴的动态内容。您可以有一个产品页面模板,然后根据一些输入变量,将单个产品详细信息/图像/等填充到模板中。

    有一些实际的 PHP 模板引擎(一个是 Smarty..http://www.smarty.net/),您可以看看。

    我从来不是他们的粉丝,但很多人都通过它获得了成功。

    【讨论】:

      【解决方案4】:

      您可以阅读 Smarty 3。

      http://www.smarty.net/v3_overview

      例如。它现在有模板继承

      【讨论】:

      • 链接不是答案。更详细地解释这是什么以及它如何回答原始问题会很有帮助。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-29
      • 2010-10-17
      • 2010-09-12
      • 2011-04-21
      • 1970-01-01
      • 2010-11-30
      • 1970-01-01
      相关资源
      最近更新 更多