Smarty是一個使用php寫出來的模板引擎,是目前業(yè)界最著名的PHP模板引擎之一。
它分離了邏輯代碼和外在的內(nèi)容,提供了一種易于管理和使用的方法,用來將原本與html代碼混雜在一起PHP代碼邏輯分離。
簡單的講,目的就是要使PHP程序員同前端人員分離,使程序員改變程序的邏輯內(nèi)容不會影響到前端人員的頁面設(shè)計,前端人員重新修改頁面不會影響到程序的程序邏輯,這在多人合作的項目中顯的尤為重要。
優(yōu)點(推薦學(xué)習(xí):PHP編程從入門到精通)
立即學(xué)習(xí)“PHP免費學(xué)習(xí)筆記(深入)”;
1. 速度:采用Smarty編寫的程序可以獲得最大速度的提高,這一點是相對于其它的模板引擎技術(shù)而言的。
2. 編譯型:采用Smarty編寫的程序在運行時要編譯成一個非模板技術(shù)的PHP文件,這個文件采用了PHP與HTML混合的方式,在下一次訪問模板時將WEB請求直接轉(zhuǎn)換到這個文件中,而不再進行模板重新編譯(在源程序沒有改動的情況下)
3. 緩存技術(shù):Smarty選用的一種緩存技術(shù),它可以將用戶最終看到的HTML文件緩存成一個靜態(tài)的HTML頁,當(dāng)設(shè)定Smarty的cache屬性為true時,在Smarty設(shè)定的cachetime期內(nèi)將用戶的WEB請求直接轉(zhuǎn)換到這個靜態(tài)的HTML文件中來,這相當(dāng)于調(diào)用一個靜態(tài)的HTML文件。
4. 插件技術(shù):Smarty可以自定義插件。插件實際就是一些自定義的函數(shù)。
5. 模板中可以使用if/elseif/else/endif。在模板文件使用判斷語句可以非常方便的對模板進行格式重排。
不適合使用Smarty的地方
需要實時更新的內(nèi)容。例如像股票顯示,它需要經(jīng)常對數(shù)據(jù)進行更新,這類型的程序使用smarty會使模板處理速度變慢。
小項目。小項目因為項目簡單而美工與程序員兼于一人的項目,使用Smarty會在一定程度上喪失PHP開發(fā)迅速的優(yōu)點。
(PS:不過為了整個項目的規(guī)范,請大家嘗試去使用模板引擎。其實習(xí)慣了,開發(fā)速度會更加快,以上是沒有用習(xí)慣模板引擎的開發(fā)者遇到的問題)
thinkphp是為了簡化企業(yè)級應(yīng)用開發(fā)和敏捷WEB應(yīng)用開發(fā)而誕生的。最早誕生于2006年初,2007年元旦正式更名為ThinkPHP,并且遵循Apache2開源協(xié)議發(fā)布。
ThinkPHP從誕生以來一直秉承簡潔實用的設(shè)計原則,在保持出色的性能和至簡的代碼的同時,也注重易用性。并且擁有眾多原創(chuàng)功能和特性,在社區(qū)團隊的積極參與下,在易用性、擴展性和性能方面不斷優(yōu)化和改進。
ThinkPHP是一個快速、兼容而且簡單的輕量級國產(chǎn)PHP開發(fā)框架,誕生于2006年初,原名FCS,2007年元旦正式更名為ThinkPHP,遵循Apache2開源協(xié)議發(fā)布,從struts結(jié)構(gòu)移植過來并做了改進和完善,同時也借鑒了國外很多優(yōu)秀的框架和模式,使用面向對象的開發(fā)結(jié)構(gòu)和mvc模式,融合了Struts的思想和TagLib(標簽庫)、RoR的ORM映射和ActiveRecord模式。
ThinkPHP可以支持windows/unix/linux等服務(wù)器環(huán)境,正式版需要PHP5.0以上版本支持,支持mysql、PgSQL、sqlite多種數(shù)據(jù)庫以及pdo擴展,ThinkPHP框架本身沒有什么特別模塊要求,具體的應(yīng)用系統(tǒng)運行環(huán)境要求視開發(fā)所涉及的模塊。
作為一個整體開發(fā)解決方案,ThinkPHP能夠解決應(yīng)用開發(fā)中的大多數(shù)需要,因為其自身包含了底層架構(gòu)、兼容處理、基類庫、數(shù)據(jù)庫訪問層、模板引擎、緩存機制、插件機制、角色認證、表單處理等常用的組件,并且對于跨版本、跨平臺和跨數(shù)據(jù)庫移植都比較方便。并且每個組件都是精心設(shè)計和完善的,應(yīng)用開發(fā)過程僅僅需要關(guān)注您的業(yè)務(wù)邏輯。