1.控制器中視圖實(shí)例化三種方法:動(dòng)態(tài)/靜態(tài)/助手函數(shù)
1.1動(dòng)態(tài),直接實(shí)例化視圖類
在對(duì)應(yīng)模塊下創(chuàng)建視圖文件夾,每有一個(gè)控制器,相應(yīng)的要在view文件夾下創(chuàng)建一個(gè)和控制器同名文件夾,再在此文件下創(chuàng)建一個(gè)和控制器中方法名相同的html視圖文件。。結(jié)構(gòu)如下:
控制器中動(dòng)態(tài)視圖實(shí)例化:
視圖中html文件:
運(yùn)行結(jié)果:
1.2靜態(tài)創(chuàng)建視圖對(duì)象;直接實(shí)例化視圖類
示例:
和動(dòng)態(tài)相比只有調(diào)用View類方式不同:
1.3繼承控制器基類Controller來(lái)創(chuàng)建視圖對(duì)象
基類Controller中直接封裝好了view視圖對(duì)象的方法,可直接用$this調(diào)用視圖對(duì)象中的方法。
示例:
視圖html文件:
1.4助手函數(shù)view()
示例:index.php
視圖文件index.html
結(jié)果:
總結(jié):
2.模板引擎的配置:三種方法
2.1.通過(guò)應(yīng)用配置文件config.php
可以復(fù)制到自定義config.php中,進(jìn)行更改
2.2.實(shí)例化View類時(shí)傳參配置
和應(yīng)用配置config完全相同
2.3.調(diào)用View類config()方法進(jìn)行配置
總結(jié):
3.模板變量賦值的5種方式
3.1.通過(guò)assgin()方法
示例:
3.2.fetch或display方法傳參賦值
示例:fetch()
示例:display()
3.3.給視圖對(duì)象添加屬性的方式賦值
html視圖文件:
示例:繼承基類
示例:視圖類
3.4.用sharre()方法給模板添加靜態(tài)變量
示例:
3.5.用助手函數(shù)view()向模板賦值
示例:
總結(jié):
4.視圖的7種渲染方法
視圖渲染,主要用fetch方法:
視圖渲染注意事項(xiàng):
總結(jié):
5.模板內(nèi)容替換
1.替換內(nèi)容
在框架中預(yù)定義了5個(gè)可以替換的常量
這5個(gè)常量是在視圖類中定義的,view.php
2.替換方式
示例:替換視圖背景和css文件路徑
視圖文件:
控制器代碼:
結(jié)果:
如果有大量重復(fù)替換內(nèi)容,可以通過(guò)模板配置文件。
此時(shí),控制器內(nèi)就不需要再寫替換語(yǔ)句。
總結(jié):
6.模板自定義變量輸出:標(biāo)量/數(shù)組/對(duì)象
標(biāo)量:
復(fù)合變量
示例:
html視圖文件:
控制器文件:
結(jié)果:
總結(jié):
8.在模板中輸出系統(tǒng)變量
示例:模板中獲取server、cookie值、get變量
htnml模板文件:
對(duì)應(yīng)的控制器文件:
輸出結(jié)果:
示例:模板中獲取常量
結(jié)果:
9.模板中輸出請(qǐng)求變量:$Request.方法.參數(shù)
控制器中代碼:只有一行渲染模板語(yǔ)句
html模板文件:獲取GET信息
獲取path_ifno傳遞的變量、帶協(xié)議的域名、域名
獲取后綴、ip、模塊、控制器
總結(jié):

10.用函數(shù)處理模板中的變量:變量調(diào)節(jié)器
示例:
控制器文件:
html文件及結(jié)果:
總結(jié):
11.模板默認(rèn)值與運(yùn)算符:無(wú)值也可輸出
模板變量默認(rèn)值:
在模板中用豎線|,和default就可以給沒有賦值的變量設(shè)置一個(gè)初始值。
示例:
模板變量的算數(shù)運(yùn)算符:
示例:
x,y初始值是在控制器賦值了。
結(jié)果:
總結(jié):
12.原樣輸出與模板注釋
原樣輸出:
模板注釋:
示例:
13.模板布局:全局配置/模板配置/控制器配置
公共模板文件:
創(chuàng)建的公共文件路徑:
在模板中引入公共文件:
13.1.全局配置:實(shí)現(xiàn)模板布局
示例:
首先打開自定義的config.php文件,寫上配置信息,替換字符默認(rèn)
然后在視圖目錄view下,創(chuàng)建layout.html布局模板。
然后控制器渲染模板時(shí),會(huì)先渲染這個(gè)布局模板,再將CONTENT渲染成視圖模板文件的內(nèi)容。
視圖模板文件index.html
控制器渲染后的結(jié)果:
13.2.模板里配置(不依賴框架配置):實(shí)現(xiàn)模板布局
示例:
先在配置文件config.php中將布局模板配置關(guān)掉。
結(jié)果和之前一樣。
13.3.控制器中動(dòng)態(tài)配置模板布局參數(shù)
總結(jié):
14.模板繼承:模板布局加強(qiáng)版,公共模板終結(jié)者
模板繼承語(yǔ)法:
模板繼承原理:
示例:
父模板
頭部:
尾部和頭部類似,都在base文件夾下
index.html視圖文件:
結(jié)果:
總結(jié):
15.循環(huán)標(biāo)簽:模板大量數(shù)據(jù)輸出工具
循環(huán)標(biāo)簽:volist循環(huán)
有三個(gè)語(yǔ)法,重點(diǎn)用第一個(gè)
示例:
控制器部分:
視圖部分:
結(jié)果:
froeach循環(huán):只有兩個(gè)屬性
for循環(huán):
comparsion屬性代表的是start和end的的關(guān)系。
默認(rèn)step步長(zhǎng)為1
name是循環(huán)變量,就像for循環(huán)中的i、j、k等
示例:
結(jié)果:
總結(jié):
16.比較標(biāo)簽:簡(jiǎn)化模板設(shè)計(jì),智能處理需求
比較標(biāo)簽的語(yǔ)法:
示例:egt
結(jié)果:
比較標(biāo)簽還有一個(gè)compare;
下邊代碼也可以實(shí)現(xiàn)上例功能,不多多了一個(gè)參數(shù)type,可以設(shè)置比較類型,eq 、neq、 gt、 egt 等
總結(jié):
17.條件判斷標(biāo)簽:雙分支/多分支/范圍
17.1. if 條件判斷標(biāo)簽
示例:根據(jù)控制器向視圖模板傳入的模板變量籍貫,將代表籍貫的123數(shù)字,區(qū)分后漢字顯示
結(jié)果:
17.2. switch多分枝條件判斷標(biāo)簽
示例:根據(jù)控制器傳給視圖模板的數(shù)據(jù)1234,來(lái)區(qū)分用戶級(jí)別,顯示到表格中
結(jié)果:
17.3.范圍判斷標(biāo)簽:
示例:根據(jù)控制器向視圖模板傳遞的模板變量工資,判斷工資范圍,顯示成漢字
結(jié)果:
17.4.存在或空值判斷
總結(jié):
18.原生標(biāo)簽:終極解決手段
如何在模板中使用原生的PHP標(biāo)簽
示例:php原生語(yǔ)法在視圖模板中寫循環(huán)
結(jié)果:
總結(jié):