國產(chǎn)PHP框架ThinkPHP與SpeedPHP的淺析對(duì)比
本文主要簡析兩個(gè)國產(chǎn)的PHP框架ThinkPHP與SpeedPHP。通過學(xué)習(xí)發(fā)現(xiàn),它倆在很多方面有著相似但又不同的地方:
1.單一入口,二者都是單一入口文件。每個(gè)app都需要一個(gè)入口文件,且只能有一個(gè)入口文件。ThinkPHP生而就有多app支持的功能,比如在根目錄下建一個(gè)index.php,一個(gè)admin.php,其中index.php是前端app的入口,而admin.php則作為后臺(tái)app的入口。配置方法類似,只是define(‘APP_PATH’,’apppth’)和define(‘APP_NAME’,’appname’)略有不同而已。SpeedPHP盡管默認(rèn)支持單app,但通過合理配置模板目錄也可以實(shí)現(xiàn)這樣的功能,只是模板自動(dòng)輸出功能就用不上了,只好手動(dòng)寫模板輸出代碼。
2.模板變量賦值和輸出模板。先說ThinkPHP,它給模板變量賦值是這樣的:$this->assign(‘var’,$var2),SpeedPHP中給模板變量賦值使用$this->var=$var2,其中兩個(gè)$var都是模板中要使用的變量,$var2則為控制器中的變量。模板輸出兩個(gè)框架相同,都使用:
$this->display(‘templatepath’) .
3.數(shù)據(jù)模型。兩個(gè)框架都是在Model中定義,不同的是ThinkPHP在類中幾乎不用寫任何代碼,只要把類名和數(shù)據(jù)庫名保持一致就行,而SpeedPHP則需要手動(dòng)指定數(shù)據(jù)庫表和主鍵。使用的時(shí)候都要先實(shí)例化。
4.模板方面:ThinkPHP支持多種模板,默認(rèn)使用自已研發(fā)的Think模板系統(tǒng),據(jù)說比Smarty要快,這點(diǎn)無從考證;SpeedPHP支持的模板較少,默認(rèn)使用smarty。
5.數(shù)據(jù)處理:個(gè)人感覺ThinkPHP的數(shù)據(jù)處理要比SpeedPHP強(qiáng)大的多,不僅表現(xiàn)在查詢語言上,而且它支持在多個(gè)模型中動(dòng)態(tài)切換且不丟失數(shù)據(jù)。
6.安全性方面:ThinkPHP自身集成了安全驗(yàn)證功能,SpeedPHP沒有,需自己實(shí)現(xiàn)。
總之,個(gè)人認(rèn)為SpeedPHP的性能優(yōu)于ThinkPHP了,因此在項(xiàng)目開發(fā)中首選后者較為妥當(dāng)。
轉(zhuǎn)載來自http://blog.kiccp.com/321.html