一、什麼是smarty?
smarty是一個使用PHP寫出來的模板PHP模板引擎,它提供了邏輯與外在內容的分離,簡單的講,目的就是要使用PHP程式員同美工分離,使用的程式員改變程式的邏輯內容不會影響到美工的頁面設計,美工重新修改頁面不會影響到程式的程式邏輯,這在多人合作的項目
中顯的尤為重要。
二、smarty優點:
1. 速度:採用smarty編寫的程式可以獲得最大速度的提高,這一點是相對於其它的模板引擎技術而言的。
2. 編譯型:採用smarty編寫的程式在運行時要編譯成一個非模板技術的PHP檔案,這個檔案採用了PHP與HTML混合的方式,在下一次訪問模板時將WEB請求直接轉換到這個檔案中,而不再進行模板重新編譯(在來源程式沒有改動的情況下)
3. 緩衝技術:smarty選用的一種緩衝技術,它可以將使用者最終看到的HTML檔案快取成一個靜態HTML頁,當設定smarty的cache屬性為true時,在smarty設定的cachetime期內將使用者的WEB請求直接轉換到這個靜態HTML檔案中來,這相當於調用一個靜態HTML檔案。
4. 外掛程式技術:smarty可以自訂外掛程式。外掛程式實際就是一些自訂的函數。
5. 模板中可以使用if/elseif/else/endif。在模板檔案使用判斷語句可以非常方便的對模板進行格式重排。
三、不適合使用smarty的地方:
1. 需要即時更新的內容。例如像股票顯示,它需要經常對資料進行更新,這類型的程式使用smarty會使模板處理速度變慢。
2. 小項目。小項目因為項目簡單而美工與程式員兼於一人的項目,使用smarty會喪失php開發迅速的優點。
四、安裝smarty類:
安裝smarty的環境:php版本4.06以上版本。
安裝smarty方法非常簡單,從http://samrty.php.net中下載smarty.將Libs中所有檔案
拷入comm目錄,完成基本安裝.
其它進階安裝使用方法請看手冊.
五、smarty在模板中的使用:
本節通過幾個執行個體來講一講smarty的使用。smarty模板通常使用.tpl來標識,有些人為了美工方便,將副檔名直接寫成.html,也是可以的。本文中採用smarty標準寫法:以.tpl來表示為一個smarty模板。
PHP代碼:--------------------------------------------------------------------------------
執行個體1:
先來看一個簡單的例子。
=====================================================
index.tpl
=====================================================
{* 顯示是smarty變數識符裡的用*包含的文字為注釋內容 *}
{include file="header.tpl"}{*頁面頭*}
大家好,我叫{$name}, 歡迎大家閱讀我的smarty學習材料。
{include file="foot.tpl"}{*頁面尾*}
上邊的這個例子是一個tpl模板,其中:
1. {**}是模板頁的注釋,它在smarty對模板進行解析時不進行任何輸出,僅供模板設計師對模板進行注釋。
2. {include file="xxx.tpl"}使用此句將一個模板檔案包含到當前頁面中,例子中將在網站中公用事的head.tpl與foot.tpl進行了包含,你可以
這樣想,使用這一句將xxx.tpl中的內容全部複製在當前語句處。當然,你不使用這一句也可以,將XXX.tpl中的內容複寫到當前語句處
也是完全可以了。
3.{$name}: 模板變數,smarty中的核心組成,採用smarty定義的左邊界符{與右邊界符}包含著、以PHP變數形式給出,在smarty程式中將使用
$smarty->assign("name", "李曉軍");將模板中的$name替換成“李曉軍”三個字。