模板引擎使用詳解 包含公共模板

2021-09-08 22:08:05 字數 2752 閱讀 8560

thinkphp內建了乙個基於xml的編譯型模板引擎,本篇開始對其內建的標籤做深入的講解,如果你使用的是smarty等第三方模板引擎,請忽略。

變數的輸出我們已經在快速入門的變數輸出中做了詳細的描述,後面主要講解變數的輸出判斷、迴圈和控制,以及包含公共模板和資源檔案等。

[-more-]

include標籤

使用include標籤在當前模板中包含公共模板,例如常見的header和footer等公共模板,include標籤最常用的屬性是file,但是支援不同的用法,其用法基本和我們常用的模板渲染方法display方法差不多。例如:

包含public目錄下面的header模板

<

include

file

="public:header"

/>

複製**

包含當前模板目錄下面的menu模板

<

include

file

="menu"

/>

複製**

如果當前使用了多模板主題功能,還可以包含其他主題的模板

<

include

file

="blue:user:read"

/>

複製**

表示包含blue模板主題下面的user/read模板檔案,include標籤所支援的模板深度只能到操作層次,也就是說thinkphp預設的模板結構採用的是:主題/模組/操作.模板字尾,使用上述用法包含模板的時候,file屬性不需要指定模板字尾,如果你的模板結構不是標準結構,可以採用包含完整模板檔案的方式:

<

include

file

="./tpl/default/header.html"

/>

複製**

如果你在file屬性中指定了模板檔案字尾,則就會認為是包含完整模板的規則,如果你採用的是相對路徑包含,那麼當前的起始目錄應該是專案入口檔案所在的位置。

也可以用變數的方式:

<

include

file

="$filename"

/>

複製**

但是並不推薦變數呼叫方式,因為由於模板引擎的編譯特性,編譯後會被快取。

引數傳遞

include標籤除了file屬性之外,還支援傳入一些簡單的引數,並直接傳遞給模板檔案使用,舉個例子,我們包含乙個頭部檔案,希望在模板檔案裡面動態指定網頁標題和關鍵字資訊,那麼可以通過:

<

include

file

="public:header"

title

="thinkphp框架"

keywords

="開源web開發框架"

/>

複製**

這裡我們在包含header公共模板的時候,還傳入了title和keywords兩個引數,我們來看下header模板檔案怎麼接收這些引數:

<

html

xmlns

="">

<

head

>

<

title

>[title]

title

>

<

meta

name

="keywords"

content

="[keywords]"

/>

head

>

複製**

模板檔案中的[title]和[keywords]來替換include標籤中傳入的引數。

包含多個模板

從3.1版本開始,include標籤可以支援同時包含多個模板檔案,例如:

<

include

file

="public:header,public:menu"

/>

複製**

也可以支援不同方式的包含混合,例如:

<

include

file

="public:header,./tpl/default/menu.html"

/>

複製**

巢狀包含模板

include標籤支援巢狀使用,例如,我們可以在header公共模板檔案中再次包含另外乙個公共模板:

<

html

xmlns

="">

<

head

>

<

title

>[title]

title

>

<

meta

name

="keywords"

content

="[keywords]"

/>

head

>

<

include

file

="public:menu"

/>

複製**

並且理論上不限制巢狀層次,只要避免不發生迴圈巢狀的情況即可。

include標籤可以一定程度上簡化重複的模板書寫,和便於同步修改,不足就是如果公共模板檔案發生更改,但是當前的主模板檔案沒有更改,則不會自動更新模板快取,除非你設定了模板快取有效期,那麼在快取過期後會自動更新模板快取。

模板引擎使用詳解 包含公共模板

thinkphp內建了乙個基於xml的編譯型模板引擎,本篇開始對其內建的標籤做深入的講解,如果你使用的是smarty等第三方模板引擎,請忽略。變數的輸出我們已經在快速入門的變數輸出中做了詳細的描述,後面主要講解變數的輸出判斷 迴圈和控制,以及包含公共模板和資源檔案等。more include標籤 使...

模板引擎使用

模板引擎可以讓將資料和html模板更加友好的結合,省去繁瑣的字串拼接,使 更加易於維護。art template 模板編譯 通過呼叫模板引擎提供的template函式,告知模板引擎將特定模板和特定資料進行拼接,最終返回拼接結果。模板引擎匯入 const template require art te...

thymeleaf引擎模板公共頁面抽取

1 抽取公共片段 2 引入公共片段 模板名 選擇器 模板名 片段名3 預設效果 insert的公共片段在div標籤中 如果使用th insert等屬性進行引入,可以不用寫 行內寫法可以加上 三種引入公共片段的th屬性 th insert 將公共片段整個插入到宣告引入的元素中 th replace 將...