php—Smarty-1 (18),phpsmarty-118_PHP教程

來源:互聯網
上載者:User

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 } 以上這種寫法將...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.