鍍金池/ 教程/ PHP/ Smarty教程
Smarty安裝
Smarty insert
Smarty 建立緩存
Smarty調(diào)試控制臺
Smarty if,elseif,else
Smarty include_php
Smarty多個緩存
Smarty方法
Smarty section,sectionelse
Smarty注釋代碼
Smarty屬性
Smarty緩沖處理函數(shù)
Smarty變量調(diào)節(jié)器
Smarty函數(shù)
Smarty組合修改器
Smarty雙引號里值的嵌入
Smarty預(yù)過濾器
Smarty foreach,foreachelse
Smarty include
Smarty Caching緩存
Smarty變量
Smarty assign用法
Smarty控制插件輸出緩沖
Smarty從配置文件讀取的變量
Smarty對象
Smarty literal
Smarty緩存集合
Smarty教程
Smarty display方法
Smarty自定義函數(shù)
Smarty配置文件
Smarty擴展設(shè)置
Smarty數(shù)學(xué)運算
Smarty輸出濾鏡
Smarty fetch方法

Smarty教程

Smarty是一個php模板引擎。更準(zhǔn)確的說,它分開了邏輯程序和外在的內(nèi)容,提供了一種易于管理的方法。可以描述為應(yīng)用程序員和美工扮演了不同的角色,因為在大多數(shù)情況下 ,他們不可能是同一個人。例如,你正在創(chuàng)建一個用于瀏覽新聞的網(wǎng)頁,新聞標(biāo)題,標(biāo)簽欄,作者和內(nèi)容等都是內(nèi)容要素,他們并不包含應(yīng)該怎樣去呈現(xiàn)。在Smarty的程序里,這些被忽略了。模板設(shè)計者們編輯模板,組合使用html標(biāo)簽和模板標(biāo)簽去格式化這些要素的輸出(html表格,背景色,字體大小,樣式表,等等)。有一天程序員想要改變文章檢索的方式(也就是程序邏輯的改變)。這個改變不影響模板設(shè)計者,內(nèi)容仍將準(zhǔn)確的輸出到模板。同樣的,哪天美工吃多了想要完全重做界面,也不會影響到程序邏輯。因此,程序員可以改變邏輯而不需要重新構(gòu)建模板,模板設(shè)計者可以改變模板而不影響到邏輯。

    現(xiàn)在簡短的說一下什么是smarty不做的。smarty不嘗試將邏輯完全和模板分開。如果邏輯程序嚴(yán)格的用于頁面表現(xiàn),那么它在模板里不會出現(xiàn)問題。有個建議:讓應(yīng)用程序邏輯遠離模板, 頁面表現(xiàn)邏輯遠離應(yīng)用程序邏輯。這將在以后使內(nèi)容更容易管理,程序更容易升級。

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

Smaty的一些特點:

  • 非常非常的快!

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

  • 不需要多余的模板語法解析,僅僅是編譯一次

  • 僅對修改過的模板文件進行重新編譯

  • 可以編輯'自定義函數(shù)'和自定義'變量',因此這種模板語言完全可以擴展

  • 可以自行設(shè)置模板定界符,所以你可以使用{}, {{}}, <!--{}-->, 等等

  • 諸如 if/elseif/else/endif 語句可以被傳遞到php語法解析器,所以 {if ...} 表達式是簡單的或者是復(fù)合的,隨你喜歡啦

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

  • 引擎是可以定制的.可以內(nèi)嵌php代碼到你的模板文件中,雖然這可能并不需要(不推薦)

  • 內(nèi)建緩存支持

  • 獨立模板文件

  • 可自定義緩存處理函數(shù)

  • 插件體系結(jié)構(gòu)



上一篇:Smarty配置文件下一篇:Smarty insert