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

PHP.MVC的模板標簽系統(二)

The php.MVC Tag Action Dispatcher

    TagActionDispatcher是一個標準的ActionDispatcher類的實現,它支持訪問基本模板標簽.TagActionDispatcher類支持相同的ActionObjects集合和ViewResourcesConfig屬性作為默認的ActionDispatcher.TagActionDispatcher類能被用在帶有或沒有帶有模板標簽系統上,盡管由于它的額外處理會造成小的性能下降.
    模板標簽庫是php.MVC框架結構的子系統.模板標簽庫聯合TagActionDispatcher一起工作來支持一些簡單的模板標簽.
    下面的圖表顯示了php.MVC模板標簽系統的總攬.左邊展示的是模板標簽系統的程序流程.右邊是TagActionDispatcher的程序流程,還有標簽模板是怎樣使這些類進行交互.

模板標簽系統的程序流程   

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

php技術PHP.MVC的模板標簽系統(二),轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 久久精品国产亚洲AV蜜臀 | 大香网伊人久久综合观看 | 小蝌蚪视频在线观看免费观看WWW | 久久久精品3d动漫一区二区三区 | h版动漫在线播放的网站 | 亚洲人成网站在线播放 | 臀精插宫NP文 | 欧美日韩一区在线观看 | 亚洲精品在线看 | 国产欧美精品一区二区色综合 | 动漫美女人物被黄漫在线看 | 欧美精品乱码99久久蜜桃 | 女教师跟黑人男朋友激情过后 | 99精品国产福利在线观看 | 蜜芽丅v新网站在线观看 | 国产成人精品精品欧美 | 国产成人一区二区三区在线观看 | 亚洲免费在线观看视频 | 国产精品嫩草免费视频 | 麻婆豆腐传媒视频免费 | 国产精品7777人妻精品冫 | a视频免费在线 | 日本三级黄色大片 | 99精品观看 | 久久精品国产在热亚洲 | 色妺妺免费影院 | 大屁股国产白浆一二区 | 大陆午夜伦理 | 久草在线在线精品观看 | YY6080A旧里番在线观看 | 邪恶肉肉全彩色无遮琉璃神社 | 国产成人精品免费视频大 | 回复术士勇者免费观看全集 | 亚洲视频91 | 嗯呐啊唔高H兽交 | 激情床戏视频片段有叫声 | 东北真实仑乱 | 国产亚洲tv在线观看 | 暖暖视频在线高清播放 | 国产精品久久久久成人免费 | 久久久久青草大香线综合精品 |