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