1. 程式人生 > >模板引擎Smarty(部分內容採集網路)

模板引擎Smarty(部分內容採集網路)

1.Smarty是一種模板引擎技術

模板引擎是什麼?

在使用者頁面展示的一個頁面,由兩方面,資料及承載資料的標籤。標籤就是html,而資料是由php處理。這樣就造成一個文件牽涉了兩種工作人員(前端與後臺)。模板引擎技術就是將,php程式碼與html程式碼分離

Smarty是zend公司使用php語言所編寫一套php語言模板引擎。

模板引擎涉及到4個檔案:

  1. php 產生資料
  2. 模板 html
  3. 編譯檔案 對html文件的中smarty標籤進行替換後的檔案
  4. 快取檔案 對編譯檔案進行執行的結果再儲存為一個純的html文件。

那到底smarty模板引擎是怎麼把模板裡面的非php程式碼的標籤,轉變成被最終可以解析執行的php程式碼的呢?

主要思路是:替換。

分成了兩步:

  1、用過assign函式把要解析的標籤變數賦值

  2、通過display函式把標籤替換成物件的php變數

我們在php開發中,檢視層view是不允許有php程式碼來操作資料庫之類的來獲取資料的,我們一般都會在控制器層controller,就已經把檢視層要展示的資料準備好,方便檢視層直接用來展示。

smarty模板技術,可以讓資料和檢視進行分離,讓檢視中不能直接出現php程式碼。這樣的話,讓前段頁面的開發和後臺資料的開發,可以雙管齊下,同時進行了。

smarty模板的使用比較簡單,主要有兩個非常核心的函式。一個是assig(),把模板中要使用的資料進行欲賦值,一個是display(),用來解析和展示最後的檢視模板。

2.smarty部署:

下載,然後引入檔案即可。

每個引擎都是有各自的模板語法。對變數,格式化,執行語句結構順序的控制。

3.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。在模板檔案使用判斷語句可以非常方便的對模板進行格式重排。

4.不適合使用smarty的地方:

  1. 需要實時更新的內容。例如像股票顯示,它需要經常對資料進行更新,這型別的程式使用smarty會使模板處理速度變慢。
  2. 小專案。小專案因為專案簡單而美工與程式設計師兼於一人的專案,使用smarty會喪失php開發迅速的優點。(PS:不過為了整個專案的規範,請大家嘗試去使用模板引擎。其實習慣了,開發速度會更加快,以上是沒有用習慣模板引擎的開發者遇到的問題)

5.介紹幾篇不錯的文章:

文章1     文章2     文章3