模板引擎

模板引擎

模板引擎(這裡特指用於Web開發的模板引擎)是為了使用戶界面與業務數據(內容)分離而產生的,它可以生成特定格式的文檔,用於網站的模板引擎就會生成一個標準的HTML文檔。

概念


模板引擎不屬於特定技術領域,它是跨領域跨平台的概念。在Asp下有模板引擎,在PHP下也有模板引擎,在C#下也有,甚至JavaScriptWinForm開發都會用到模板引擎技術。

原理


模板引擎的實現方式有很多,最簡單的是“置換型”模板引擎,這類模板引擎只是將指定模板內容(字元串)中的特定標記(子字元串)替換一下便生成了最終需要的業務數據(比如網頁)。
置換型模板引擎實現簡單,但其效率低下,無法滿足高負載的應用需求(比如有海量訪問的網站),因此還出現了“解釋型”模板引擎和“編譯型”模板引擎等。

用途


模板引擎可以讓(網站)程序實現界面與數據分離,業務代碼與邏輯代碼的分離,這就大大提升了開發效率,良好的設計也使得代碼重用變得更加容易。
我們司空見慣的模板安裝卸載等概念,基本上都和模板引擎有著千絲萬縷的聯繫。模板引擎不只是可以讓你實現代碼分離(業務邏輯代碼和用戶界面代碼),也可以實現數據分離(動態數據與靜態數據),還可以實現代碼單元共享(代碼重用),甚至是多語言、動態頁面與靜態頁面自動均衡(SDE)等等與用戶界面可能沒有關係的功能。

相關推薦


Smarty
Smarty的特點是將模板編譯成PHP腳本,然後執行這些腳本。很快,非常靈活。
是一個模板類,一般也簡稱為模板。Smarty裡面有專門的模板引擎。模板的主要功能就是邏輯與顯示的分離,也就是PHP和HTML的分離。
Heyes Template Class
一個非常容易使用,但功能強大並且快速的模板引擎,它幫助你把頁面布局和設計從代碼中分離。
FastTemplate
一個簡單的變數插值模板類,它分析你的模板,把變數的值從HTML代碼中分離處理。
ShellPage
一個簡單易用的類,可以讓你的整個網站布局基於模板文件,修改模板就能改變整個站點。
STP Simple Template Parser
一個簡單、輕量級並且易於使用的模板分析類。它可以從多個模板中組裝一個頁面,把結果頁面輸出到瀏覽器或者文件系統。
OO Template Class
一個你可以用在自己程序中的面向對象的模板類。
SimpleTemplate
一個可以創建和結構化網站的模板引擎。它可以解析和編譯模板。
短小但是快速的模板類,允許你把PHP邏輯代碼從HTML修飾代碼中分離。
一個強大且輕量級的PEAR兼容模板系統。它是非編譯型的,使用PHP語言本身做為它的模板語言。
ETS - easy template system
可以使用完全相同數據重組模板的模板系統。
EasyTemplatePHP
適用於你的站點的一個簡單但是強大的模板系統。
vlibTemplate
一個快速、全能的模板系統,它包含一個緩存和調試類。
AvanTemplate
多位元組安全的模板引擎,佔用很少系統資源。它支持變數替換,內容塊可以設置顯示或隱藏。
Grafx Software’s Fast Template
一個修改版本的Fast Template系統,它包括緩存功能,調試控制台以及沉默去除為賦值塊。
TemplatePower
一個快速、簡單、功能強大的模板類。主要功能有嵌套的動態塊支持,塊/文件包含支持以及顯示/隱藏未賦值的變數。
TagTemplate
這個庫的功能被設計來使用模板文件,同時允許你從HTML文件檢索信息。
htmltmpl: templating engine
一個適用於Python和PHP的模板引擎。它面向希望在項目中分離代碼和設計的web應用開發人員。
PHP Parsing Dreamweaver templates
一個分析Dreamweaver模板的簡單類,被用於Gallery 2 和WordPress的自定義模塊中。
MiniTemplator (Template Engine)
針對HTML文件的一個緊湊型模板引擎。對於模板變數和塊定義它具有簡單的語法。其中塊可以嵌套。
Layout Solution
簡化網站開發和維護。它擁有常用的變數和頁面元素使你不需要重複做頁面布局工作。
Cached Fast Template
它已經納入FastTemplate,允許你緩存模板文件,甚至可以在分離的塊內容上緩存不同的規格。
TinyButStrong
一個支持MySQL, Odbc, Sql-ServerADODB的模板引擎。它包含7個方法和兩個屬性。
Brian Lozier’s php based
只有2K大小,非常快並且是面向對象設計。
一個從設計中分離代碼的模板引擎。
PHPTAL
一個PHP下面的XML/XHTML模板庫。