前面的話

  在大多數(shù)的項目組中,開發(fā)一個Web程序都會出現(xiàn)這樣的流程:計劃文檔提交之后,前端工程師制作了網(wǎng)站的外觀模型,然后把它交給后端工程師,它們使用后端代碼實現(xiàn)程序邏輯,同時使用外觀模型做成基本架構(gòu),然后工程被返回到前端工程師繼續(xù)完善。就這樣工程可能在后端工程師和前端工程師之間來來回回好幾次。由于后端工程師不干預(yù)任何相關(guān)HTML標(biāo)簽,同時也不需要前端代碼和后端代碼混合在一起。前端工程師只需要配置文件,動態(tài)區(qū)塊和其他的界面部分,不必要去接觸那些錯綜復(fù)雜的后端代碼。因此,這時候有一個很好的模板支持就顯得很重要了。本文將詳細(xì)介紹PHP中的模板引擎

 

概述

  什么是網(wǎng)站模板?準(zhǔn)確地說,是指網(wǎng)站頁面模板,即每個頁面僅是一個板式,包括結(jié)構(gòu)、樣式和頁面布局,是創(chuàng)建網(wǎng)頁內(nèi)容的樣板,也可以理解為已有的網(wǎng)頁框架??梢詫⒛0逯性械膬?nèi)容替換成從服務(wù)器端數(shù)據(jù)庫中動態(tài)內(nèi)容,目的是可以保持頁面風(fēng)格一致

  PHP是一種HTML內(nèi)嵌式的在服務(wù)器端執(zhí)行的腳本語言,所以大部分PHP開發(fā)出來的Web應(yīng)用,初始的開發(fā)模板就是混合層的數(shù)據(jù)編程。雖然通過MVC設(shè)計模式可以把程序應(yīng)用邏輯與網(wǎng)頁呈現(xiàn)邏輯強(qiáng)制性分離,但也只是將應(yīng)用程序的輸入、處理和輸出分開,網(wǎng)頁呈現(xiàn)邏輯(視圖)還會有HTML代碼和PHP程序強(qiáng)耦合在一起。PHP腳本的編寫者必須既是網(wǎng)頁設(shè)計者,又是PHP開發(fā)者

  現(xiàn)在已經(jīng)有很多解決方案,可以將網(wǎng)站的頁面設(shè)計和PHP應(yīng)用程序幾乎完全分離。這些解決方案稱為“模板引擎”,它們正在逐步消除由于缺乏層次分離而帶來的難題。模板引擎的目的,就是要達(dá)到上述提到的邏輯分離的功能。它能讓程序開發(fā)者專注于資料的控制或是功能的達(dá)成。因此,模板引擎很適合公司的Web開發(fā)團(tuán)隊使用,使每個人都能發(fā)揮其專長

  模板引擎技術(shù)的核心比較簡單。只要將前端頁面指定為模板文件,并將這個模板文件中動態(tài)的內(nèi)容,如數(shù)據(jù)庫輸出、用戶交互等部分,定義成使用特殊“定界符”包含的“變量”,然后放在模板文件中相應(yīng)的位置。當(dāng)用戶瀏覽時,由PHP腳本程序打開該模板文件,并將模板文件中定義的變量進(jìn)行替換。這樣,模板中的特殊變量被替換為不同的動態(tài)內(nèi)容時,就會輸出需要的頁面

  目前,可以在PHP中應(yīng)用的并且比較成熟的模板有很多,例如Smarty、PHPLIB、IPB等幾十種。使用這些通過PHP編寫的模板引擎,可以讓代碼脈絡(luò)更加清晰,結(jié)構(gòu)更加合理化。也可以讓網(wǎng)站的維護(hù)和更新變得更容易,創(chuàng)造一個更加良好的開發(fā)環(huán)境,讓開發(fā)和設(shè)計工作更容易結(jié)合在一起。但是,沒有哪一個PHP模板是最合適、最完美的。因為PHP模板就是大眾化的東西,并不是針對某個人開發(fā)的。如果能在對模板的特點(diǎn)、應(yīng)用有清楚的認(rèn)識基礎(chǔ)上,充分認(rèn)識到模板的優(yōu)勢劣勢,就可以知道是否選擇使用模板引擎或選擇使用哪個模板引擎

 

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式