什么是模板语言?

时间:2010-10-26 18:08:48

标签: php templating

我在某处读到PHP是一种模板语言。什么是模板语言?什么使PHP成为一个?其他模板语言是什么?

4 个答案:

答案 0 :(得分:22)

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

考虑两个人为的例子:

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."

VS

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)都有自己的模板功能,通常称为“邮件合并”。

答案 1 :(得分:11)

模板语言基本上是一种允许定义占位符的语言,以后为了实现设计而应该替换它们。显然,现代模板语言不仅支持占位符,还支持设计网页通常所必需的循环和条件。有些甚至支持更高级但仍然有用的技术,如模板继承,宏和沙盒。

关于PHP:由于PHP本身可能被插入到HTML中,因此它可以用作模板语言。另一方面,PHP非常冗长,特别是如果没有启用短标签的话。

快速且功能丰富的模板引擎Twig。我会推荐它聪明。它提供了更多功能(最值得注意的是模板继承)并且速度更快。

答案 2 :(得分:7)

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

读取PHP文件时,只查看PHP块标记(<?php?>)中的代码,其余代码将传递给输出。因此,PHP解释器可以处理.html文件,并且不会发生任何事情,HTML将被输出。

如果HTML文件的某些区域具有PHP标记和代码,则会对其进行解释,并可能在这些位置输出一些数据。这可以被视为模板。通常,这是一个想法,即拥有一个输出层,然后拥有与之相关的动态内容。您可以拥有产品页面模板,然后根据某个输入变量,只将一个产品详细信息/ images / etc填充到模板中。

您可以查看PHP的实际模板引擎(Smarty for one .. http://www.smarty.net/)。

我从未成为他们的粉丝,但很多人都认为这是成功的。

答案 3 :(得分:1)

你可以阅读Smarty 3。

http://www.smarty.net/v3_overview

例如。它现在有模板继承