模板實(shí)現(xiàn)原理

2018-02-07 13:03 更新

DzzOffice擁有完善的模版機(jī)制,支持模版和程序的分離,方便模版風(fēng)格的擴(kuò)展開發(fā)。

通常模版文件存放在template目錄下,文件格式為 htm。在加載模版的時(shí)候通常就是簡(jiǎn)單的一句:

include template('dir/filename');


include template('filename');

其中 dir 為當(dāng)前模塊template目錄下的子目錄名稱,如果直接在template下dir可省略,filename 為模板文件名稱。

這個(gè)時(shí)候 Dzz模版引擎主要進(jìn)行了如下的行為:

  • 根據(jù)傳入的參數(shù)計(jì)算得到完整的文件路徑和名稱(更多參數(shù)請(qǐng)參看./core/function/function_core.php中的template函數(shù))

  • 檢查文件是否存在以及解析之后的模版緩存是否存在及是否已經(jīng)過期

  • 根據(jù)上一步判定是否進(jìn)行模版的解析,如未解析過的話,將解析后的可執(zhí)行文件存入 ./data/template/ 下以備調(diào)用

  • 返回解析后的模板文件地址并加載

  • 加載成功

      注意:保證 ./data/template/目錄有寫入權(quán)限,后臺(tái)更新模板緩存時(shí)會(huì)清空此目錄,如果沒有權(quán)限將導(dǎo)致模板無法加載或無法更新。



模板緩存機(jī)制

         DzzOffice采用的是預(yù)編譯的模板緩存機(jī)制,程序調(diào)用模板過程中先去檢測(cè)是否已經(jīng)存在緩存,如果存在已編譯后的模板文件,則直接調(diào)用編譯后的模板緩存(./data/template/下)。否則進(jìn)行一次模板編譯。

模板編譯工作原理如下:

            


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)