Smarty教學

Smarty是一個php範本引擎。更準確的說,它分開了邏輯程式和外在的內容,提供了一種易於管理的方法。可以描述為應用程式員和美工扮演了不同的角色,因為在大多數情況下 ,他們不可能是同一個人。例如,你正在創建一個用於流覽新聞的網頁,新聞標題,標籤欄,作者和內容等都是內容要素,他們並不包含應該怎樣去呈現。在Smarty的程式裏,這些被忽略了。範本設計者們編輯範本,組合使用html標籤和範本標籤去格式化這些要素的輸出(html表格,背景色,字體大小,樣式表,等等)。有一天程式員想要改變文章檢索的方式(也就是程式邏輯的改變)。這個改變不影響範本設計者,內容仍將準確的輸出到範本。同樣的,哪天美工吃多了想要完全重做介面,也不會影響到程式邏輯。因此,程式員可以改變邏輯而不需要重新構建範本,範本設計者可以改變範本而不影響到邏輯。

    現在簡短的說一下什麼是smarty不做的。smarty不嘗試將邏輯完全和範本分開。如果邏輯程式嚴格的用於頁面表現,那麼它在範本裏不會出現問題。有個建議:讓應用程式邏輯遠離範本, 頁面表現邏輯遠離應用程式邏輯。這將在以後使內容更容易管理,程式更容易升級。

   Smarty的特點之一是"範本編譯"。意思是Smarty讀取範本檔然後用他們創建php腳本。這些腳本創建以後將被執行。因此並沒有花費範本檔的語法解析,同時每個範本可以享受到諸如Zend加速器(http://www.zend.com) 或者PHP加速器(http://www.php-accelerator.co.uk)。這樣的php編譯器高速緩存解決方案。

Smaty的一些特點:

  • 非常非常的快!

  • 用php分析器幹這個苦差事是有效的

  • 不需要多餘的範本語法解析,僅僅是編譯一次

  • 僅對修改過的範本檔進行重新編譯

  • 可以編輯'自定義函數'和自定義'變數',因此這種範本語言完全可以擴展

  • 可以自行設置範本定界符,所以你可以使用{}, {{}}, <!--{}-->, 等等

  • 諸如 if/elseif/else/endif 語句可以被傳遞到php語法解析器,所以 {if ...} 運算式是簡單的或者是複合的,隨你喜歡啦

  • 如果允許的話,section之間可以無限嵌套

  • 引擎是可以定制的.可以內嵌php代碼到你的範本檔中,雖然這可能並不需要(不推薦)

  • 內建緩存支持

  • 獨立範本檔

  • 可自定義緩存處理函數

  • 插件體系結構



開始學習 >> :Smarty安裝