19.2 Smarty介紹
Smarty(http://smarty.php.net/)是PHP的“半官方”的模板化引擎,從其主頁的位置就可以看出。Smarty的作者是Andrei Zmievski和Monte Orte。它是在GNU寬通用公共許可(LGPL,http://www.gnu.org/ copyleft/lesser.html)下發布的,可能是最流行、功能最強大的PHP模板化引擎。
Smarty還提供了很多強大的功能,本章將討論其中一部分,概括如下。
q 強大的表現邏輯。Smarty提供了適當的構造,能夠有條件地計算和迭代地處理數據。雖然它本身實際上是一種語言,但語法很簡單,設計人員可以很快地學會,而不需要預備的編程知識。
q 模板編譯。為減少開銷,Smarty在默認情況下將模板轉換為可比較的PHP腳本,使得後續的調用速度更快。Smarty還非常智能,在內容改變後可以重新編譯。
q 緩存。Smarty還提供了緩存模板的可選特性。緩存與編譯不同的是,支持緩存不只是能生成緩存的內容,還能防止執行個別邏輯。例如,你可以指定緩存文檔的生存時間,比如5分鐘,在此期間可以忽略與該模板有關的數據庫查詢。
q 高度可配置和可擴展。Smarty的面向對象架構允許修改和擴展其默認行為。此外,從一開始可配置性就是一個設計目標,為用戶提供了很大的靈活性,通過內置方法和屬性定制Smarty的行為。
q 安全。Smarty提供了很多安全特性,可以避免服務器和應用程序數據遭到設計人員有意或無意的破壞。
記住,所有流行的模板化解決方案都遵循同樣的一組相同的核心實現原則。與編程語言一樣,學習了一種語言就可以更容易地掌握其他語言。因此,即使不使用Smarty,你也可以繼續讀下去。本章介紹的概念絕對可以應用於任何其他類似的解決方案。此外,本章不會全面照搬Smarty手冊的內容,而只是關注Smarty的關鍵特性,使你對這個解決方案有一個初步的認識,並始終強調一般性的模板化概念。