亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > ThinkPHP > 正文

ThinkPHP 學習筆記二 模版

2024-09-09 15:19:59
字體:
來源:轉載
供稿:網友

1.模版定義

默認的模板文件定義規則是:

模板目錄/模板主題/[分組名/]模塊名/操作名+模板后綴

模板目錄默認是項目下面的Tpl, 模板主題默認是default,模板主題功能是為了多模板切換而設計的,如果有多個模板主題的話,可以用TMPL_DEFAULT_THEME 參數設置默認的模板主題名。

在每個模板主題下面,是以項目的模塊名為目錄,然后是每個模塊的具體操作模板文件,例如:

User模塊的add操作 對應的模板文件就應該是:Tpl/default/User/add.html

模板文件的默認后綴的情況是.html,也可以通過TMPL_TEMPLATE_SUFFIX來配置成其他的。

如果項目啟用了模塊分組功能(假設User模塊屬于Home分組),那么默認對應的模板文件可能變成:Tpl/default/Home/User/add.html

2. 模版賦值

要在模板中輸出變量,必須在在Action類中把變量傳遞給模板,視圖類提供了 assign方法對模板變量賦值,無論何種變量類型都統一使用assign賦值。

$this->assign('name',$value);  

3.模版調用

模板變量賦值后就需要調用模板文件來輸出相關的變量,模板調用通過display方法來實現,我們在操作方法的最后使用:

$this->display();

根據前面的模板定義規則,因為系統會按照默認規則自動定位模板文件,所以通常display方法無需帶任何參數即可輸出對應的模板,這是模板輸出的最簡單的用法.

一、調用當前模塊的其他操作模板

格式:display('操作名')

例如,假設當前操作是User模塊下面的read操作,我們需要調用User模塊的edit操作模版,使用:

$this->display('edit');

不需要寫模板文件的路徑和后綴。

二、調用其他模塊的操作模板

格式:display('分組名:模塊名:操作名') 其中分組名是可選的

例如,當前是User模塊,我們需要調用Member模塊的read操作模版,使用:

$this->display('Member:read');

三、調用其他主題的操作模板

格式:display('主題名@模塊名:操作名')

例如我們需要 調用Xp主題的User模塊的edit操作模版,使用:

$this->display('Xp@User:edit');   

四、直接全路徑輸出模板

格式:display('模板文件名')

例如,我們直接輸出當前的Public目錄下面的menu.html模板文件,使用:

$this->display('./Public/menu.html');  

這種方式需要指定模板路徑和后綴,這里的Public目錄是位于當前項目入口文件位置下面,如果是其他的后綴文件,也支持直接輸出

4.模板替換

在進行模板輸出之前,系統還會對渲染的模板結果進行一些模板的特殊字符串替換操作,也就是實現了模板輸出的替換和過濾,這個機制可以使得模板文件的定義更加方便,默認的替換規則有:

./ Public: 會被替換成當前項目的公共模板目錄 通常是 /項目目錄/Tpl/default/Public/

__ PUBLIC __:會被替換成當前網站的公共目錄 通常是 /Public/

__ TMPL __: 會替換成項目的模板目錄 通常是 /項目目錄/Tpl/dfault/

__ ROOT __: 會替換成當前網站的地址(不含域名)

__ APP __: 會替換成當前項目的URL地址 (不含域名)

__ URL __: 會替換成當前模塊的URL地址(不含域名)

__ ACTION __:會替換成當前操作的URL地址 (不含域名)

__ SELF __: 會替換成當前的頁面URL

注意這些特殊的字符串是嚴格區別大小寫的,并且這些特殊字符串的替換規則是可以更改或者增加的,我們只需要在項目配置文件中配置TMPL_PARSE_STRING就可以完成,如果有相同的數組索引,就會更改系統的默認規則:

  1. TMPL_PARSE_STRING  => array(    
  2.       '__ PUBLIC __' => '/Common',  // 更改默認的__ PUBLIC __ 替換規則    
  3.      '__UPLOAD__' => '/Public/Uploads/',  // 增加新的上傳路徑替換規則    

5. 獲取內容

有些時候我們不想直接輸出模板內容,而是希望對內容再進行一些處理后輸出,就可以使用fetch方法來獲取解析后的模板內容,在Action類里面使用:

$content = $this->fetch();

fetch的參數用法和Display方法基本一致,

6. 靜態生成

ThinkPHP提供了靈活的靜態文件生成功能,可以在輸出模板的同時生成需要的靜態文件,以供調用.

在Action中使用buildHtml方法即可創建靜態文件,buildHtml方法的第一個參數就要生成的靜態文件名,后面的參數和display方法一致,內部其實是調用了前面提到的fetch方法獲取模板輸出然后創建靜態文件,用法如下:

$this->buildHtml('靜態文件', '靜態路徑','模板文件');  

靜態路徑如果留空的話 默認保存在HTML_PATH(默認的HTML_PATH路徑位于項目目錄下面的Html目錄,如果沒有的話手動創建)定義的路徑下面,靜態文件可以隨意設置,也可以包括路徑,如果不存在的路徑系統會自動創建

7. 模板引擎

系統支持原生的PHP模板,而且本身內置了一個基于XML的高效的編譯型模板引擎,無論在功能還是性能方面都優秀過Smarty,系統默認使用的模板引擎是內置模板引擎,關于這個模板引擎的標簽詳細使用可以參考模板指南部分。

內置的模板引擎也可以直接支持在模板文件中采用PHP原生代碼和模板標簽的混合使用,如果需要完全使用PHP本身作為模板引擎,可以配置:

'TMPL_ENGINE_TYPE' => 'PHP'

可以達到最佳的效率

8. 使用第三方模板引擎

系統支持模板引擎的擴展機制,并且官方提供了包括Smarty、EaseTemplate、TemplateLite和Smart在內的第三方模板引擎擴展。我們以Smarty模板引擎為例,來說明下如何使用第三方模板引擎。

首先,需要下載官方的模板引擎擴展,并放到系統目錄的LibThinkUtilTemplate目錄下面,然后,下載最新的Smarty模板引擎文件放到系統目錄的Vendor第三方類庫目錄。

剩下的,我們要做的只是簡單的配置下模板引擎名稱即可,例如在項目配置文件里面設置:'TMPL_ENGINE_TYPE' => 'Smarty'

區別就在于display方法直接輸出模板文件渲染后的內容,而fetch方法是返回模板文件渲染后的內容。如何對返回的結果content進行處理,完全由開發人員自行決定了。這是模板替換的另外一種高級方式,比較靈活,而且不需要通過配置的方式。

注意,fetch方法仍然會執行上面的模板替換操作。

9.布局模版

<!-- layout::模板文件規則::緩存時間(秒) -->

<!-- layout::Public:header::60 -->

10.系統模板

系統有一些內置的模板文件用于異常頁面和頁面Trace功能的輸出,你可以定制這些模板頁面,滿足自己的需要。默認的系統模板主要有:

頁面Trace模板:默認位于系統目錄的Tpl/PageTrace.tpl.php 是一個php文件,可更改TMPL_TRACE_FILE進行配置.

異常模板:默認位于系統目錄的Tpl/ThinkException.tpl.php,可以更改TMPL_EXCEPTION_FILE進行配置.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩风俗一区 二区| 国产精品美女久久| 久久中文字幕在线视频| 国产精品视频公开费视频| 国产精品日韩在线| 日韩av网址在线观看| 国产精品午夜国产小视频| 国产精品揄拍一区二区| 在线色欧美三级视频| 国产成人免费91av在线| 91久久国产婷婷一区二区| 久久6免费高清热精品| 欧美性理论片在线观看片免费| 日韩欧美极品在线观看| 欧美人与性动交| 国产精品白丝av嫩草影院| 2019中文在线观看| 国产欧美精品日韩| 欧美裸体视频网站| 激情久久av一区av二区av三区| 日韩国产高清视频在线| 精品国内亚洲在观看18黄| 欧美成人精品三级在线观看| 久久精品91久久久久久再现| 久久久精品在线| 国产99久久精品一区二区| 国产精品第2页| 国产亚洲精品va在线观看| 91精品在线观| 黄色一区二区三区| 国产精品精品久久久| 美女av一区二区三区| 欧美性极品xxxx做受| 欧美日韩视频免费播放| 国内精品国产三级国产在线专| 久久精品视频在线播放| 影音先锋欧美在线资源| 亚洲电影免费观看高清完整版在线| 国产一区二区三区高清在线观看| 2019av中文字幕| 国产亚洲精品久久久久久牛牛| 久久久久久久国产| 国产精品手机播放| 91成人天堂久久成人| 国产成人拍精品视频午夜网站| 色妞色视频一区二区三区四区| 国产成人精品网站| 日韩在线视频导航| 欧美日韩在线看| 久久精品国产亚洲一区二区| 国产精品免费在线免费| 一区二区三区www| 蜜臀久久99精品久久久久久宅男| 日韩精品视频在线观看网址| 96国产粉嫩美女| 欧美国产精品va在线观看| 久久久www成人免费精品张筱雨| 亚洲国产成人在线视频| 日韩在线视频国产| 国产伦精品一区二区三区精品视频| xvideos亚洲人网站| 久久人人97超碰精品888| 国产日韩欧美在线| 亚洲视频在线播放| 国产精品亚洲视频在线观看| 在线播放日韩精品| 一本色道久久88精品综合| 欧美成人h版在线观看| 青青草精品毛片| 在线播放国产精品| 亚洲欧美视频在线| 欧美性xxxx极品高清hd直播| 91大神在线播放精品| 这里只有精品视频| 国产精品∨欧美精品v日韩精品| 中文字幕亚洲无线码a| 精品亚洲va在线va天堂资源站| 97激碰免费视频| 97精品久久久中文字幕免费| 国产成人一区二区三区小说| 91免费国产网站| 亚洲自拍高清视频网站| 日韩欧美精品在线观看| 亚洲欧洲中文天堂| 国产精品wwwwww| 亚洲精品久久久久中文字幕二区| 国产精品日韩专区| xxxxx成人.com| 亚洲第一页中文字幕| 欧美日韩国产va另类| 人人做人人澡人人爽欧美| 久色乳综合思思在线视频| 国产91九色视频| 欧美极品少妇xxxxⅹ免费视频| 亚洲电影在线看| 亚洲成人免费网站| 欧美性xxxxxxxxx| 性欧美视频videos6一9| 日韩中文字幕在线| 91欧美精品午夜性色福利在线| 欧美与欧洲交xxxx免费观看| 亚洲欧美国产精品va在线观看| 国产99视频在线观看| 国产色视频一区| 亚洲美女又黄又爽在线观看| 日本精品va在线观看| 欧美成人一区二区三区电影| 欧美激情一级精品国产| 最近2019中文免费高清视频观看www99| 91美女片黄在线观看游戏| 国产精品久在线观看| 中国人与牲禽动交精品| 久久久精品2019中文字幕神马| 91亚洲精品久久久| 亚洲国产古装精品网站| 欧美成人精品h版在线观看| 日韩激情在线视频| 欧美国产激情18| 欧美一级在线亚洲天堂| 中文字幕亚洲欧美日韩高清| 久久成人人人人精品欧| 亚洲欧美在线x视频| 国内精品国产三级国产在线专| 亚洲国产另类久久精品| 欧美性高潮在线| 在线视频一区二区| 国产精品欧美日韩一区二区| 九九视频这里只有精品| 色老头一区二区三区| 亚洲剧情一区二区| 欧美在线视频观看| 国产精品精品久久久久久| 日本欧美爱爱爱| 久久亚洲综合国产精品99麻豆精品福利| 国产噜噜噜噜噜久久久久久久久| 91精品国产乱码久久久久久蜜臀| 午夜精品一区二区三区在线视频| 欧美一级电影免费在线观看| 91夜夜未满十八勿入爽爽影院| 在线视频国产日韩| 精品久久久久久中文字幕大豆网| 欧美美最猛性xxxxxx| 亚洲精选一区二区| 亚洲精品中文字| 亚洲男人7777| 亚洲国产成人爱av在线播放| 欧美日本亚洲视频| 国产精品嫩草影院一区二区| 精品国产依人香蕉在线精品| 亚洲欧美激情一区| 91爱视频在线| 日韩av手机在线| 国产视频一区在线| 国产亚洲一区二区在线| 亚洲自拍偷拍色图| 国产美女精品视频免费观看| 一区二区三区 在线观看视| 国产精品丝袜白浆摸在线| 97视频网站入口| 日本精品免费观看| 91精品久久久久久久久中文字幕| 亚洲第一区中文99精品| 国产黑人绿帽在线第一区| 久久亚洲精品一区|