9
PHPTAL PHPTAL 樣樣樣樣 樣樣樣樣 PHPTAL PHPTAL 樣樣樣 樣樣樣 : : 樣樣樣樣樣 樣樣樣樣樣 xml/xhtml xml/xhtml 樣樣樣樣樣 樣樣樣樣樣 樣樣樣樣樣樣樣樣樣樣樣樣樣樣樣樣樣 樣樣樣樣樣樣樣樣樣樣樣樣樣樣樣樣樣 樣樣樣 樣樣樣 WYSIWYG WYSIWYG 樣樣樣樣樣 樣樣樣樣樣 (What you see is what you get) (What you see is what you get) 樣樣樣樣樣樣樣樣 樣樣樣樣樣樣樣樣

PHPTAL 樣板引擎

Embed Size (px)

DESCRIPTION

PHPTAL 樣板引擎. PHPTAL 的特色 : 樣版完全由 xml/xhtml 標籤所構成 完成樣板時就可以透過瀏覽器查看版型 也就是 WYSIWYG 的樣板引擎 (What you see is what you get) 樣板引擎的比較表. PHPTAL 完成頁面流程. 使用者呼叫 php 頁面 (ex:http://localhost/123.php) 該 php page 會載入 phptal 物件庫 然後 new a template object ,以樣板檔案的 URI 為參數 php 檔案裡指定填在樣板裡的資料和物件 - PowerPoint PPT Presentation

Citation preview

Page 1: PHPTAL  樣板引擎

PHPTAL PHPTAL 樣板引擎樣板引擎PHPTALPHPTAL 的特色的特色 :: 樣版完全由樣版完全由 xml/xhtml xml/xhtml 標籤所構成標籤所構成 完成樣板時就可以透過瀏覽器查看版型完成樣板時就可以透過瀏覽器查看版型 也就是也就是 WYSIWYGWYSIWYG 的樣板引擎的樣板引擎(What you see is what you get)(What you see is what you get)

樣板引擎的比較表樣板引擎的比較表

Page 2: PHPTAL  樣板引擎

PHPTALPHPTAL 完成頁面流程完成頁面流程1.1. 使用者呼叫使用者呼叫 phpphp 頁面頁面 (ex:http://localhost/(ex:http://localhost/

123.php)123.php)

2.2. 該該 php page php page 會載入會載入 phptalphptal 物件庫物件庫3.3. 然後 然後 new a template objectnew a template object ,以樣板檔,以樣板檔

案的案的 URIURI 為參數為參數4.4. php php 檔案裡指定填在樣板裡的資料和物件檔案裡指定填在樣板裡的資料和物件5.5. 執行執行 (parse template , substitute and dis(parse template , substitute and dis

play )play )

Page 3: PHPTAL  樣板引擎
Page 4: PHPTAL  樣板引擎
Page 5: PHPTAL  樣板引擎
Page 6: PHPTAL  樣板引擎

PHPTALPHPTAL 語法語法 PHPTAL PHPTAL 利用利用 tagtag 內的內的 attributeattribute 來實做樣板語言來實做樣板語言 NamespaceNamespace 有下列幾種有下列幾種1.1. TAL (TAL ( 最常用的最常用的 ns)ns)

2.2. METAL(METAL( 網頁區塊的利用網頁區塊的利用 ))

3.3. I18N (I18N ( 國際化語言的支援國際化語言的支援 ))

4.4. PHPTAL PHPTAL

5.5. *:block(*:block( 同標籤裡的同標籤裡的 nsns 可以只先定義一次可以只先定義一次 ))

6.6. PHPTALES(PHPTALES( 在在 tal ns tal ns 的參數的的參數的 ns, ex: string: … )ns, ex: string: … )

Page 7: PHPTAL  樣板引擎

常用的常用的 attributeattribute

1.1. tal:define tal:define 定義變數供樣板使用定義變數供樣板使用 Ex: <span tal:define = “global destname path/to/existinEx: <span tal:define = “global destname path/to/existin

g/variable”g/variable”

有有 globalglobal 和和 locallocal 的變數的變數

1.1. tal: condition tal: condition 若條件判斷為若條件判斷為 truetrue ,顯示標籤的內容,顯示標籤的內容 <span tal:condition =“identidied”> Welcome member</<span tal:condition =“identidied”> Welcome member</

span>span>

Page 8: PHPTAL  樣板引擎

常用的常用的 attributeattribute

tal:repeattal:repeat用來操作陣列用來操作陣列EX: <tr tal:repeat="item some/result"> EX: <tr tal:repeat="item some/result">

<td tal:content="item">text replaced by item</td> <td tal:content="item">text replaced by item</td>

</tr> </tr>

tal:contenttal:content將變數帶入標籤的內容中將變數帶入標籤的內容中Ex: <span tal:define="myvar string:my string"/>

<span tal:content="myvar">will be replaced</span>

Page 9: PHPTAL  樣板引擎

效能問題效能問題 若每次使用者點閱網頁時,樣板引擎都要若每次使用者點閱網頁時,樣板引擎都要

先先 parseparse 一次樣板,會使得顯示完整畫面一次樣板,會使得顯示完整畫面的速度更加緩慢的速度更加緩慢

需要有需要有 cachecache 的機制,第一次的機制,第一次 parseparse 一個一個頁面時,最好產生出一個完全編譯成動態頁面時,最好產生出一個完全編譯成動態網頁語言的檔案網頁語言的檔案 (( 例如例如 :: 將樣板的語言置換將樣板的語言置換phpphp 的程式碼的程式碼 ))

這樣才不會拖慢開網頁的速度這樣才不會拖慢開網頁的速度