php—Smarty-1 (18),phpsmarty-118
smarty
一、模板原理
1、 為什麼使用模板
1) 情境:
for($i=0;$i<$count;$i++){
echo ‘’.$row[‘proname’].’
}
以上這種寫法將html與php進行混編,不利於開發和維護
2) 情境:
我們現在開發了一個網站,經過一段時間的運營,客戶對前台不滿意,我們又開發一套介面,但運行之後,客戶認為之前的樣式比較好,經常更換網站樣式
解決以上兩個問題的最好辦法,就是使用模板
2、 模板的具體實現
模板的實現其實就是字串替換
1) 例1
模板檔案:
PHP檔案:
1) 例2:
Template類:
PHP代碼:
上面的類檔案中的代碼,不夠最佳化,我們可以使用比較流行的模板架構來實現自己的項目
二、Smarty簡介
1、 什麼是Smarty
Smarty是一個基於PHP開發的PHP模板引擎。它提供了邏輯與外在內容的分離。
2、 Smarty的特點
l 速度
l 編譯型
l 緩衝技術
l 外掛程式技術
l 語句自由 if/elseif/else/endif
l 即時更新 :即時性要求比較高
3、 配置
l http://smarty.php.net
l /lib
l Smarty 2.6 php4.0
l Smarty 3.0 php5.0
1 解壓smarty,進入解壓目錄
Demo:案例
Libs:Smarty原始碼
1) 進入libs目錄,
Plugins:自訂外掛程式目錄
Sysplugins:系統外掛程式目錄
Debug.tpl :在Smarty中,有調試功能,可以觀察變數的值 ,調試視窗模板
Smarty.class.php:Smarty核心類檔案(入口檔案)
SmartyBC.class.php :Smarty3.0在2.0的基礎上進行了升級,如果想使用2.0的功能,可以引用這個入口檔案
3)將libs目錄複寫到項目中,並重新命名
三、 快速入門
1、 代碼實現:
模板代碼:
{$name}、{$age} :模板標記變數
程式碼:
2、 smarty工作原理:
l smarty將php源檔案,首先編譯成中間檔案
l 如果啟用緩衝,再根據編譯檔案產生快取檔案
l 之後的每次訪問都會訪問編譯檔案
l 如果啟用緩衝且有快取檔案而且沒有到期,則直接存取快取檔案
Smarty第一次運行某個程式時,會將這個程式產生一個編譯檔案
以後,每次運行這個程式時,只要模板沒有改變,就直接運行這個編譯檔案,如果模板改變了,就重建編譯檔案,再去運行。
編譯是指標對模板的編譯
3、 原理圖:
http://www.bkjia.com/PHPjc/993275.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/993275.htmlTechArticlephp—Smarty-1 (18),phpsmarty-118 smarty 一、模板原理 1、 為什麼使用模板 1) 情境: for($i=0;$i$count;$i++){ echo td.$row[proname]./td } 以上這種寫法將...