摘要:隨著動態(tài)網(wǎng)站信息量的大幅度增多,Web應(yīng)用服務(wù)器的負擔也隨之增大。為此,采用目前最先進的PHP模板引擎Smarty開發(fā)完成了西安交通大學中英文主頁信息管理系統(tǒng)。Smarty強大的表現(xiàn)邏輯、智能的模板編譯和完善的安全機制,大大提高了系統(tǒng)的建站效率和運行效率,確保了信息的安全。同時Smarty靈活的頁面緩存機制以及所提供的全站純靜態(tài)化技術(shù)大大提高了網(wǎng)頁的編譯效率,減輕了服務(wù)器的負擔。
關(guān)鍵詞:Smarty;模板引擎;信息管理;MVC
中圖分類號:TN91134;TP311.5文獻標識碼:A文章編號:1004373X(2012)18002504
引言
Smarty是PHP里眾多著名、優(yōu)秀的模板之一。它將應(yīng)用程序分成視圖和邏輯控制兩部分實現(xiàn),目的就是將UI(用戶界面)和PHP代碼分離。這樣,程序員在修改程序時,不會影響頁面設(shè)計,而美工在重新設(shè)計或修改頁面時,也不會影響程序邏輯。與其他模板相比,采用Smarty模板編寫的程序可以獲得最快的建站速度,尤其適合大中型網(wǎng)站建站使用。此外,Smarty提供了很多強大的功能,如強大的表現(xiàn)邏輯、智能的模板編譯、靈活的緩存機制、高度的可配置和可擴展性以及完善的安全機制[1]。本文結(jié)合基于Smarty的信息管理系統(tǒng)的開發(fā)經(jīng)驗,具體介紹了Smarty模板的安裝和配置,并討論了頁面緩存技術(shù)和全站純靜態(tài)化技術(shù)在系統(tǒng)中的應(yīng)用。
1Smarty模板介紹
Smarty的開發(fā)模式基于了模型視圖控制器框架(ModelViewController,MVC)的概念。PHP的MVC模型如圖1所示[2]。
視圖提供給用戶的界面。視圖只負責信息的收集和顯示,不涉及處理。
控制器負責處理視圖和模型的對應(yīng)關(guān)系,并將視圖收集的信息傳給模型。
模型從接收過來的信息中進行處理,并將處理結(jié)果回傳給視圖[3]。
數(shù)據(jù)以及在數(shù)據(jù)上的運算構(gòu)成了一個軟件應(yīng)用模型。模型內(nèi)部運行著系統(tǒng)核心的商業(yè)邏輯,其功能是維護內(nèi)部數(shù)據(jù),提供允許外部對象訪問和修改內(nèi)部數(shù)據(jù)的命令或查詢。同時在它內(nèi)部的數(shù)據(jù)發(fā)生變化時,將這個變化消息廣播給所有與之相關(guān)的視圖[2]。
2Smarty的安裝
PHP沒有內(nèi)置的Smarty模板類,需單獨下載和配置。Smarty要求服務(wù)器上的PHP版本最低為4.0.6[3]。本文使用的PHP版本是5.2.6.6;Smarty版本為Smarty3.1.5。