2010-10-26 121 views
21

我正在閱讀PHP是模板語言的地方。什麼是模板語言?是什麼讓PHP成爲一體?什麼是其他模板語言?什麼是模板語言?

+0

該術語基本上定義了使用範圍。模板語言在(完整)編程語言和宏(擴展)語言之間具有屬性。 – mario 2010-10-26 18:28:11

回答

18

模板語言背後的前提是該語言在某些其他主文檔中是「嵌入」的。具體而言,在您的平均文檔中,文檔的總大小主要是文檔源而不是模板語言。

考慮兩個做作的例子:

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,都有自己的模板功能,通常稱爲「郵件合併」。

7

PHP不一定是一種模板語言,但它可以通過測試,因爲它被解釋的方式。

讀取PHP文件時,只會查看PHP塊標記(<?php?>)中的代碼,其餘部分將傳遞到輸出。所以.html文件可以由PHP解釋器處理,並且什麼都不會發生,HTML將被輸出。

如果HTML文件的某些區域含有PHP標記和代碼,它將被解釋並可能在這些位置輸出一些數據。這可以被認爲是一個模板。通常這是有一個輸出層,然後有動態內容的想法。您可以有一個產品頁面模板,然後基於某個輸入變量,只將一個產品詳細信息/圖像/等填充到模板中。

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

我從來沒有成爲他們的粉絲,但很多人都發現它的成功。

9

模板化語言基本上是一種語言,它允許定義佔位符,以後爲了實現設計而將其替換。顯然,現代模板語言不僅支持佔位符,而且還支持循環和條件,這對設計網頁通常是必需的。有些甚至支持更先進但仍然有用的技術,如模板繼承,宏和沙箱。

關於PHP:由於PHP本身可能被內插到HTML中,因此可以用作模板語言。另一方面,PHP非常冗長,特別是如果沒有啓用短標籤。

快速且功能豐富的模板引擎是Twig。我會推薦它通過smarty。它提供了更多的功能(最顯着的是模板繼承),速度更快。