什么是模板语言?

问题描述:

我正在阅读PHP是模板语言的地方。什么是模板语言?是什么让PHP成为一体?什么是其他模板语言?什么是模板语言?

+0

该术语基本上定义了使用范围。模板语言在(完整)编程语言和宏(扩展)语言之间具有属性。 – mario 2010-10-26 18:28:11

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

考虑两个做作的例子:

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

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

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

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

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

我从来没有成为他们的粉丝,但很多人都发现它的成功。

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

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

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

您可能会在Smarty的3读取

http://www.smarty.net/v3_overview

如。它现在有模板继承