天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

PHP.MVC的模板標(biāo)簽系統(tǒng)(二)

The php.MVC Tag Action Dispatcher

    TagActionDispatcher是一個(gè)標(biāo)準(zhǔn)的ActionDispatcher類的實(shí)現(xiàn),它支持訪問基本模板標(biāo)簽.TagActionDispatcher類支持相同的ActionObjects集合和ViewResourcesConfig屬性作為默認(rèn)的ActionDispatcher.TagActionDispatcher類能被用在帶有或沒有帶有模板標(biāo)簽系統(tǒng)上,盡管由于它的額外處理會造成小的性能下降.
    模板標(biāo)簽庫是php.MVC框架結(jié)構(gòu)的子系統(tǒng).模板標(biāo)簽庫聯(lián)合TagActionDispatcher一起工作來支持一些簡單的模板標(biāo)簽.
    下面的圖表顯示了php.MVC模板標(biāo)簽系統(tǒng)的總攬.左邊展示的是模板標(biāo)簽系統(tǒng)的程序流程.右邊是TagActionDispatcher的程序流程,還有標(biāo)簽?zāi)0迨窃鯓邮惯@些類進(jìn)行交互.

模板標(biāo)簽系統(tǒng)的程序流程   

1.初始化
    當(dāng)控制器傳遞控制到達(dá)TagActionDispatcher,一些初始化觸發(fā)去設(shè)置ActionObjects和ViewResourcesConfig屬性為了使用我們的模板:
    從request中重新獲得$form,$errors和$data對象,如果這些對象中的任意一個(gè)已經(jīng)在之前被創(chuàng)建(比如在Action類中),那么對象現(xiàn)在將在資源模板中不可見,否則對象將被設(shè)置為NULL.
    重新獲得ViewResourcesConfig對象的參考,它包含了配置參數(shù).
    設(shè)置在ViewResourcesConfig參數(shù)中指向模板源文件和編譯的模板文件的路徑.
2.設(shè)置標(biāo)簽頁面
    模板源文件的擴(kuò)展名(可能是".ssp")被用來和ViewResourcesConfig->tagFlagStr參數(shù)相比較來決定是否這個(gè)頁面需要處理,否則頁面將被處理為標(biāo)準(zhǔn)(無標(biāo)簽)模板文件.我們能在view-resources元素中配置標(biāo)簽文件擴(kuò)展名,就像這樣:
    <view-resources
 ...
 tagFlagStr = ".ssp"
 tagFlagCnt = "-4"
 ...
    </view-resources>
    tagFlagStr指示了標(biāo)簽?zāi)0逶次募鼙活A(yù)處理,比如:myPage.ssp.這個(gè)擴(kuò)展名觸發(fā)標(biāo)簽處理.屬性tagFlagCnt定義了文件名結(jié)尾的字符數(shù),包括"."(xxxYyy.ssp).據(jù)個(gè)例子,-4代表源文件名最后4個(gè)字符.默認(rèn)值是.ssp和-4,因此如果我們使用一個(gè)模板文件名像myPage.ssp,我們不需要設(shè)置這些參數(shù).
3.處理標(biāo)簽文件
    模板標(biāo)簽系統(tǒng)決定是否運(yùn)行標(biāo)簽處理器,要根據(jù)ViewResourcesConfig->processTags屬性.如果這個(gè)屬性為真,模板頁(及它所包含的頁)將被標(biāo)簽處理器類所處理,否則標(biāo)簽處理器不會被調(diào)用.開發(fā)者只要將它在開發(fā)中將其設(shè)置為真即可,假則不處理.但要注意的是當(dāng)processTags屬性設(shè)置為真,修改過的標(biāo)簽頁才會被編譯(這依賴于compileAll屬性設(shè)置).我們能定義processTags屬性在view-resources元素,就像這樣:
    <view-resources
 ...
 processTags = "True"
 ...
    </view-resources>
    注意,它的默認(rèn)值是假.
4.編譯模板頁.
    如果TagActionDispatcher決定模板頁將被處理,那么它會傳遞控制給模板標(biāo)簽系統(tǒng).現(xiàn)在模板標(biāo)簽系統(tǒng)將決定是否只編譯修改過的頁,還是編譯所有頁.這種行為使用ViewResourcesConfig->compileAll屬性來定義.我們定義compileAll屬性就像這樣:
    <view-resources
 ...
 compileAll = "True"
 ...
    </view-resources>
    這個(gè)屬性默認(rèn)為假.
5.只編譯修改的頁.
    如果compileAll屬性設(shè)置為假(默認(rèn)值),那么只會編譯修改過的頁.據(jù)個(gè)例子,如果被請求的頁面自從上次被請求以來被修改過,此頁將會被編譯.
6.編譯所有的頁.
    如果compileAll屬性設(shè)置為真,模板標(biāo)簽系統(tǒng)將總是編譯頁面(包括包含的頁面)無論此頁面自從上次請求以來是否修改過.開發(fā)者使用在開發(fā)中使用這個(gè)選項(xiàng)能夠保證所有的頁面都被處理.
7.處理VIEW資源.
    在處理完模板頁之后,控制權(quán)回到TagActionDispatcher.被請求的VIEW資源(模板文件)將被任何其他的正規(guī)php.MVC模板文件所處理.TagActionDispatcher重新獲得被編譯的頁(包括包含的頁面)并且將頁面輸出給用戶的瀏覽器.如果模板標(biāo)簽系統(tǒng)沒有被調(diào)用,TagActionDispatcher將被請求的頁面作為正規(guī)的VIEW資源來處理.比如TagActionDispatcher能被用來代替標(biāo)準(zhǔn)的ActionDispatcher.

php技術(shù)PHP.MVC的模板標(biāo)簽系統(tǒng)(二),轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲精品久久久久AV无码 | 中文字幕精品视频在线 | 男人J桶女人P视频无遮挡网站 | 动态抽插图视频 | 男人女人边摸边吃奶边做 | 英国video性精品高清最新 | 门鱼电影完整版免费版 | 精品久久久久中文字幕加勒比东京热 | 寂寞护士中文字幕 mp4 | 尤物国产在线精品三区 | 久久大香线蕉综合爱 | 99久久免费热在线精品 | 日本xxx在线观看免费播放 | 午夜DJ国产精华日本无码 | 啊…嗯啊好深男男高h文 | 无限资源在线观看高清 | 妻子+免费观看完整 | 亚洲乱色视频在线观看 | 99久久久久国产精品免费 | 办公室丝袜老师在线观看 | 午夜国产一区在线观看 | 最近中文字幕mv手机免费高清 | 一个人视频日本在线观看 | 97人妻丰满熟妇AV无码 | 99久久国内精品成人免费 | 久久久久嫩草影院精品 | 成人国内精品久久久久影 | 亚洲人成网站7777视频 | 特级淫片大乳女子高清视频 | 亚洲色婷婷久久精品AV蜜桃 | 久热在线这里只有精品7 | 韩日美无码精品无码 | 7723日本高清完整版在线观看 | 国产对白精品刺激一区二区 | 亚洲国产五月综合网 | 5G在线观看免费年龄确认 | 最近中文字幕mv手机免费高清 | 99国内精精品久久久久久婷婷 | 语文老师扒开胸罩喂我奶 | 中文字幕在线观看亚洲视频 | 欧美视频精品一区二区三区 |