http://baike.baidu.com/link?url=HmXfdJBv3zpCdnZPeaSmZmqDBHlyTBnz9Rmb5it-jf1_NLHfaku6_i8ssUYbnaTQEBD4vARnPpKuC7UtrOmWQ_
PHP是一種HTML內嵌式的在服務器端執行的
腳本語言,因此大部分
PHP開發出來的Web應用,初始的開發模板就是混合層的數據編程。雖然經過
MVC設計模式能夠把程序應用邏輯與網頁呈現邏輯強制性分離,但也只是將應用程序的輸入、處理和輸出分開,網頁呈現邏輯(視圖)還會有
HTML代碼和PHP程序強
耦合在一塊兒。
-
中文名
-
php模板引擎
-
解 釋
-
一種HTML腳本語言
若是你正在設計一個交互式的網站,你必定會關注兩個主要的問題,就是界面美工和應用程序。在大多數的項目組中,開發一個Web程序都會出現這樣的流程:計劃文檔提交以後,
界面設計者(美工)製做了網站的外觀模型,而後把它交給後臺程序員。程序員使用
PHP實現
程序邏輯,同時使用外觀模型作成基本架構,而後工程被返回到HTML頁面設計者繼續完善。就這樣工程可能在後臺程序員和頁面設計者之間來來回回好幾回。因爲後臺程序員不喜歡干預任何有關HTML標籤,同時也不須要美工們和PHP代碼鬼混在一塊兒。美工設計者只須要配置文件,動態區塊和其餘的界面部分,沒必要要去接觸那些錯綜複雜的PHP代碼。所以,這時候有一個很好的模板支持就顯得很重要了。
PHP是一種HTML內嵌式的在服務器端執行的
腳本語言,因此大部分PHP開發出來的Web應用,初始的開發模板就是混合層的數據編程。雖然經過
MVC設計模式能夠把程序應用邏輯與網頁呈現邏輯強制性分離,但也只是將應用程序的輸入、處理和輸出分開,網頁呈現邏輯(視圖)還會有
HTML代碼和PHP程序強
耦合在一塊兒。PHP腳本的編寫者必須既是網頁設計者,又是PHP開發者。但實際狀況是,多數Web開發人員要麼是精通網頁設計,可以設計出漂亮的網頁外觀,可是編寫的PHP代碼很糟糕;要麼僅熟悉PHP編程,可以寫出健壯的PHP代碼,可是設計的網頁外觀很難看。具有兩種才能的開發人員不多見。
如今已經有不少解決方案,能夠將網站的頁面設計和PHP應用程序幾乎徹底分離。這些解決方案稱爲"模板引擎",它們正在逐步消除因爲缺少層次分離而帶來的難題。模板引擎的目的,就是要達到上述提到的邏輯分離的功能。它能讓程序開發者專一於資料的控制或是功能的達成;而網頁設計師則可專一於網頁排版,讓網頁看起來更具備專業感。所以,模化引擎很適合公司的Web開發團隊使用,使每一個人都能發揮其專長。
模板引擎技術的核心比較簡單。只要將美工頁面(不包含任何的
PHP代碼)指定爲模板文件,並將這個模板文件中有活動的內容,如數據庫輸出、用戶交互等部分,定義成使用特殊"定界符"包含的"變量",而後放在模板文件中相應的位置。當用戶瀏覽時,由PHP腳本程序打開該模板文件,並將模板文件中定義的變量進行替換。這樣,模板中的特殊變量被替換爲不一樣的動態內容時,就會輸出須要的頁面。
在Web開發中分離應用程序的業務邏輯和表現邏輯,是咱們使用模板引擎的主要目的。這是由於有如下兩個重要緣由:
美工設計人員能夠與應用程序開發人員獨立工做,由於應用的表現和邏輯並不是密不可分地糾纏在一塊兒。此外,由於大多數模板引擎使用的表現邏輯通常比應用程序所使用編程語言的語法更簡單,因此,美工設計人員不須要爲完成其工做而在程序語言上花費太多精力。
可使用一樣的代碼基於不一樣目標生成數據,例如生成打印的數據、生成Web頁面或生成電子數據表等。若是不使用模板引擎,則須要針對每種輸出目標複製並修改代碼,這會帶來很是嚴重的代碼冗餘,極大地下降了可管理性。
目前,能夠在
PHP中應用的而且比較成熟的模板有不少,例如
Smarty、
PHPLIB、IPB、
xingTemplate等幾十種。使用這些經過PHP編寫的模板引擎,可讓你的代碼脈絡更加清晰,結構更加合理化。也可讓網站的維護和更新變得更容易,創造一個更加良好的開發環境,讓開發和設計工做更容易結合在一塊兒。可是,對於一個
PHP程序員來講,沒有哪個PHP模板對他是最合適、最完美的。由於PHP模板就是大衆化的東西,並非針對某我的開發的。若是能在對模板的特色、應用有清楚的認識基礎上,充分認識到模板的優點劣勢,就能夠知道是否選擇使用模板或選擇使用哪一個模板。
smarty
smarty是一個基於
PHP開發的PHP模板引擎。它提供了邏輯與外在內容的分離,簡單的講,目的就是要使用PHP程序員同美工分離,使用的程序員改變程序的邏輯內容不會影響到美工的頁面設計,美工從新修改頁面不會影響到程序的
程序邏輯,這在多人合做的項目中顯的尤其重要。
Template Lite
Template Lite是一個很是快並且很小HTML模板引擎。該引擎支持
Smarty模板引擎所具備的大部分功能和過濾器。
TinyButStrong
TinyButStrong(TBS)是一個可讓
PHP腳本和
HTML文件乾淨分離的PHP模板引擎。TBS設計成可使用任何可視化
HTML編輯器來編寫TBS的HTML模板頁。
XTemplate
XTemplate是一個適用於
PHP的模板引擎。它容許把
HTML代碼與PHP代碼分開存儲。XTemplate包含了許多有用的功能好比嵌套的程序塊,各類類型的插值變量。其代碼很是簡潔而且是最優化的。
Savant
Savant是一個強大但輕量級的
面向對象PHP模板引擎。不象其模板系統,
Savant默認沒有把模板編譯成
PHP,而是使用PHP自己來做爲它的模板語言因此你不須要學習一套新的標記系統。Savant有一個面向對象的模板插件系統和輸出過濾器,可讓你快速爲它新增新的行爲。
phemplate
phemplate是一個簡單並且快速的PHP模板引擎。它容許在模板中加入變量和一些動態程序塊包括循環。該模板引擎可以能夠實現表現與邏輯相分離,也就是說你能夠從
PHP腳本中抽出全部HTML內容。設計人員能夠隨意更改HTML而不用擔憂弄亂你的PHP腳本。
Dwoo
Dwoo是一個PHP5模板引擎。兼容
Smarty模板,它在Smarty語法的基礎上徹底進行重寫。支持經過
插件擴展其功能。
Sugar
Sugar是一個相似於
Smarty的模板引擎,擁有一個簡潔和易於理解的語法。
Twig
Twig是一個靈活,快速,安全的
PHP模板語言。它將模板編譯成通過優化的原始PHP代碼。Twig擁有一個
砂箱模型來評估不可信的模板代碼。Twig由一個靈活的
詞法分析器和
語法分析器組成,可讓開發人員定義本身的標籤,過濾器並建立本身的DSL。
FXL Template
FXL Template是一個易於使用的模板引擎,提供了一個模板系統所擁有的全部基本功能。支持簡單的text/
array分配,block和
嵌套的blocks。擁有良好的規則表達式和簡單的模板語法,以實現儘量快的模板處理。
H2o
H2o是一個PHP模板引擎,它擁有django風格的漂亮模板標籤。它大部分概念都源於Django模板。特性:擁有可讀和天然的語法。複用模板
Inclusion和繼承。國際化支持。各類
緩存支持。
ns-template
2010年大約5月份時,感覺到
DEDE標籤主動調用數據理念適合CMS,因此開發了一些
Smarty自定義修改器和
自定義標籤,可是在執行過程當中性能低下,開銷以s計,這是沒法容忍的。分析跟蹤,受自定義標籤實現的原理限制不可能快。因而在dz模板的基礎上加入了很多
smarty語法以及自定義標籤功能。經歷了一年多線上運行和bug修復,而且彌補了DEDE標籤多級
嵌套問題後,在較穩定的狀況下釋出該版本。
Blade
Blade是
Laravel框架下的一種簡單又強大的模板引擎。Blade 很是快,由於僅使用了少許的
正則表達式來爲你的模板編譯成原始
PHP代碼。不一樣於控制器佈局,Blade模板引擎由模板繼承和模板片斷驅動。全部的Blade模板文件必須使用Blade
.blade.php文件擴展名。