PHP.MVC標籤文法
在基本的介紹之後,我們現在就可以來看看模板標籤系統的文法.
在看具體的標籤之前,我們應該定義什麼作為我們的標籤.為了寫一個標籤,我們使用<@ ... @>標籤結點.左標籤(<@)和右標籤(@>)是預設的標籤.如果必要的話,這些標籤我們能夠在phpmvc-config.xml中重新定義.
模板標籤系統現在支援以下3種標籤:包含指令,聲明和運算式.我們現在來看看這些指令.
包含指令
包含指令能讓我們將內容分隔為許多模組,比如:頁首,頁尾或者內容.包含的頁面可以是HTML,或者其他標籤模板頁.據個例子,下面的包含指令能用來包含一個頁首:
<@ include 'pageHeader.ssp' @>
一個包含指令在模板上下文種的例子:
<html>
<head>
...
</head>
<body>
<center>
<table class='pageLayoutTable'>
<tr>
<td class='pageHeader'>
<@ include 'pageHeader.ssp' @>
</td>
</tr>
<!-- PAGE CONTENTS -->
...
<!-- PAGE FOOTER -->
...
</table>
...
</center>
</body>
</html>
在這裡例子種pageHeader.ssp頁首檔案內容將被插入到首頁面上當這個頁面被發送到使用者瀏覽器上.這個頁首檔案包含了一個運算式:
<!-- Page Header -->
<span>
<@ =viewConfig.getAppTitle @>
</span>
這個運算式將被編譯並且將在運行時輸出為:
<!-- Page Header -->
<span>
Flash Jacks' Sleek Tab Site
</span>
聲明
聲明允許我們在模板種聲明一個頁面層級的變數,或者甚至其他包含頁面.一個聲明看起來像以下代碼:
<@ salesAreaID = "Central District" @>
我們能夠在模板檔案中使用聲明:
<@ saleMonth = data.getValueBean('SALE_MONTH') @>
<@ saleTitle = data.getValueBean('SALE_TITLE') @>
<@ dealHeading = data.getValueBean('DEAL_HEADING') @>
<@ salesAreaID = "Central District" @>
<html>
<head>
<link rel='stylesheet' type='text/CSS' href="./style/pageStyles.css"/>
<title>
...
</title>
</head>
<body>
...
</body>
</html>
在這裡例子中,我們聲明了一些頁變數.前3個變數已經在我們建立的Action類中的ActionObject中被賦值:data.getValueBean('SALE_MONTH').第4個變數被賦了一個字串值:salesAreaID = "Central District".
聲明的變數現在可以在頁面中使用了:
<!-- start_page_contents_include -->
...
<!-- Content section heading -->
<h4><@=dealHeading @> <@=saleMonth @></h4>
<center>
Clearance deals
<table class='productsTable'>
...
</table>
</center>
<center>
Todays specials
<table class='productsTable'>
...
</table>
</center>
...
<!-- end_page_contents_include -->
這些頁變數將被輸出為:
<!-- Content section heading -->
<h4>Jack's Super Deals for : May 2010</h4>
...
...
運算式
運算式標籤允許我們在模板頁中執行運算式.運算式的結果將被包含進模板頁.以下運算式將被用來顯示一個簡單的字串(salesAreaID),也可以找回架構配置類的屬性:
<@ =salesAreaID @>
<@ =viewConfig.contactInfo @>
為了使用這些運算式,我們要在之前聲明過:
<@ salesAreaID = "Central District" @>
或者在ViewResourcesConfig對象(viewConfig)的屬性在view-resources結點中聲明過:
<view-resources
appTitle = "Flash Jacks' Sleek Tab Site"
contactInfo = "flash.jack@jackshost.com"
...
</view-resources>
當使用運算式中的對象時,我們能夠寫一個對象-方法(object-method)聲明在標準的PHP符號或者點風格的符號:
The PhpMVC_Tags Object-Method Notation
PHP Style sales = data->getSales
Dot Style sales = data.getSales
With Method Params staff = data.getValueBean("STAFF")
Retrieve Data Array products = data->getValueBean("PRODUCTS_ARRAY")
在下一個單元我們將看到如何使用模板標籤系統將這些結合在一起來構建頁面.