避免頁面元素重複
“這確實不錯”,你也許會想,“我的網站主要就是由大量的靜態頁面構成。現在我可以從所有頁面中刪除它們的公共部分,要更新這些公共部分實在太麻煩了。
請考慮上面的範例。這個範例其實只有一個example.php頁面,它之所以能夠產生整個網站的所有頁面,是因為它利用了URL中的查詢字串從資料庫之類的資訊來源動態地建構出頁面。
我們之中的大多數人所經營的網站並不一定都有資料庫支援。我們的網站大多由靜態頁面構成,然後用PHP在這裡、那裡加上一些動態功能,例如搜尋引擎、回饋表單等。那麼,如何在這種網站上應用模板呢?
最簡單的方法是為每個頁面複製一份PHP文件,然後在每一個頁面中把PHP程式碼裡代表內容的變數設定成適當的頁面內容。例如,假設有三個頁面,它們分別是主頁(home)、關於(about)和產品(product),我們可以用三個檔案分別產生它們。這三個檔案的內容都類別如:
// home.php
require('class.FastTemplate.php');
$tpl = new FastTemplate('.');
$tpl->define( array( 'main' => 'main.htm',
'header' => 'header.htm',
'leftnav' => 'leftnav.htm' ) );
$content = "
歡迎參觀
希望你能喜歡本網站
";