PHP.MVC的模板標簽系統(PhpMVC_Tags)現在提供了3種類型的標簽:包含指令,聲明和表達式.
包含指令能讓我們將內容分隔為許多模塊,比如:頁眉,頁腳或者內容.包含的頁面可以是HTML,或者其他標簽模板頁.據個例子,下面的包含指令能用來包含一個頁眉:
<@ include 'pageHeader.ssp' @>
聲明允許我們在模板種聲明一個頁面級別的變量,或者甚至其他包含頁面.一個聲明看起來像以下代碼:
<@ salesAreaID = "Central District" @>
表達式標簽允許我們在模板頁中執行表達式.表達式的結果將被包含進模板頁.以下表達式將被用來顯示一個簡單的字符串(salesAreaID),也可以找回框架配置類的屬性:
<@ =salesAreaID @>
<@ =viewConfig.getAreaManager @>
PHP.MVC beta 0.4.0引進了一個新配置類叫做ViewResourcesConfig.這個類能被用來定義能被用在VIEW資源(模板)中的全局參數,並且也能去配置模板標簽系統,它將在下面顯示.phpmvc-config.xml配置文件中的view-resources元素在下面的顯示:
<view-resources
appTitle = "Flash Jacks' Sleek Tab Site"
copyright = "Copyright @ 2010 Flash Jack. All rights reserved."
contactInfo = "[email protected]"
processTags = "true"
compileAll = "true"
className = "MyViewResourcesConfig">
<!-- We can set some properties on our custom ViewResourcesConfig class -->
<set-property property="areaManager" value="Joe J. Blogs Esq."/>
</view-resources>
模板頁面處理使用模板標簽系統能被<view-resources>結點來控制.首先我們能定義是模板標簽系統編譯所有模板頁面還是只編譯修改過的.其次,我們能定義模板標簽系統是否真的要處理標簽頁面,處理標簽頁面在應用程序配置當中和配置之後很有用.下面單元顯示的<view-resources>是將compileAll和processTags屬性設置為真(總是處理標簽頁並且處理所有標簽頁):
<view-resources
...
processTags = "true"
compileAll = "true"
...
</view-resources>
Action Dispatcher
PHP.MVC版本beta 0.4.0以上ActionDispatcher類用來負責使FormBean,Errors,Value(商務數據)和ViewResourcesConfig對象在我們的VIEW(模板)中可以使用.
在檢查模板標簽系統之前我們應該快速的看一下ActionObjects和ViewResourcesConfig類,當在使用標准的ActionDispatcher時.
ActionObjects
ActionDispatcher使一些對象在我們所使用的模板頁面中的應用程序VIEW資源可用.3種標准的ActionObjects為:FormBean,Errors,和Value(商務數據)對象.
一下表格顯示了在FormAction和Action類中如何使用FormBean,Errors和Value對象:
Saving ActionObjects in ActionForm Classes
ActionErrors $this->saveErrors($request, $actionErrors)
FormBeans $this->saveFormBean($request, $this)
ValueObjects $this->saveValueObject($request, $valueObject)
Saving ActionObjects in Action Classes
ActionErrors $this->saveErrors($request, $actionErrors)
FormBeans $this->saveFormBean($request, $form)
ValueObjects $this->saveValueObject($request, $valueObject)
Retrieving ActionObjects in View Resources (Templates)
ActionErrors $errors->getItemString('logon_username_reqd')
FormBeans $form->username
ValueObjects $data->salesNorth
一個ActionObject將被初始化為NULL如果對象沒有在之前被創建和保存.要想得到ActionObjects的詳細信息請看這裡:http://www.phpmvc.net/docs/guides/guidesIdx.php?doc=action-objects
View Resources
ActionDispatcher也能暴露ViewResourcesConfig對象到我們的模板頁面中.ViewResourcesConfig對象被phpmvc-config.xml配置文件中的<view-resources>元素所配置的.如果ViewResourcesConfig對象還沒有被配置,那麼一個新的實例將使用默認的ViewResourcesConfig類的屬性.
下面這段代碼顯示了使用模板標簽系統的表達式在我們的HTML頁眉模板中如何訪問ViewResourcesConfig屬性:
<!-- Page Header -->
<span>
<@ =viewConfig.getAppTitle @>
</span>
配置Action Dispatcher
ActionDispatcher是默認的PHP.MVC(在beta 0.4.0以上版本)Dispatcher類.這個Action Dispatcher被包含於框架將默認被使用,除非我們定義了一個類來替代Dispatcher類.在下一節中我們將看到怎樣配置我們的應用程序來使用一個替代類--TagActionDispatcher類.