PHP目前是使用最廣泛的腳本解析動態語言之一。在PHP的開發當中,開發者都很關心的一個問題是,如何最大程度地將頁面和商業邏輯分離。而目前的很多PHP的開發框架,在這方面都有很好的解決方案,比如Zend,Agavi,CakePHP和CodeIgniter。然而,假如你的項目不是太大而沒使用這些框架時,則可以選用一些開源的PHP模版引擎來實現頁面和邏輯的分離,目前比較著名的有Smarty。本文將介紹另一款新興的PHP模版引擎Dwoo,它同樣有很多優點,值得讀者去學習。
一、安裝Dwoo
首先到Dwoo的官方網站下載(http://www.dwoo.org)最新的版本1.1.7。在下載後,解壓dwoo,將解壓目錄命名為dwoo,當然,你也可以用pear的安裝方法安裝,方法為:
pear channel-discover pearhub.org
pear install pearhub/Dwoo
二、Dwoo模版簡介
在Dwoo中,跟象Smarty等模版引擎差不多的是,它允許用戶用普通的HTML編輯工具編輯表現層的頁面,然後在需要產生動態內容的地方用占位符表示。模版引擎在解析的時候,會把如數據庫中的或者業余邏輯計算結果填充到這些占位符中。下面先看一個簡單的例子。
我們先建立一個模版文件,Dwoo的模版文件默認是tpl,當然你也可以改為其他文件後綴。模版文件名為knock.tpl,把它保存在template文件夾中,內容為:
- <html>
- <head></head>
- <body>
- <blockquote>
- Knock knock! <br/>
- Who's there? <br/>
- {$name} <br/>
- {$name} who? <br/>
- {$punchline}
- </blockquote>
- </body>
- </html>
可以看到,在Dwoo中,模版文件中,把需要動態更替的內容用{$ }這樣的形式包裹起來,作為占位符,占位符當中的內容到時會被自動更替為實際的內容。接下來看如何使用Dwoo,代碼如下:
- <?php
- include 'dwooAutoload.php';
- // 創建dwoo實例
- $dwoo = new Dwoo();
- //讀取模版文件
- $tpl = new Dwoo_Template_File('tmpl/knock.tpl');
- // 對模版變量賦值
- $data = array();
- $data['name'] = 'Boo';
- $data['punchline'] = 'Don't cry, it's only a joke';
- // 將實際內容輸出到模版
- $dwoo->output($tpl, $data);
- ?>
下面是使用Dwoo的幾個步驟:
1、首先要包含Dwoo自動裝載類dwooAutoload.php,這個類是自動加載了Dwoo模版所需要的其他依賴的類和工具類;
2、創建Dwoo類的實例;
3、通過new Dwoo_Template_File的方法加載模版,其中的參數為模版文件所在的路徑;
4、設置要向模版文件中輸出的替換內容,在Dwoo中,只需要通過定義一個關聯數組的方法即可,數組中每個元素的名稱跟模版文件中的占位符一一對應,數組中的每個值,就是要替換模版中的實際內容;
5、通過調用output方法,將數據向模版中輸出,傳入的參數為輸出的數組內容和模版路徑。
下圖為輸出結果: