thinkphp是為了簡化企業級應用開發和敏捷WEB應用開發而誕生的。最早誕生于2006年初,2007年元旦正式更名為ThinkPHP,并且遵循Apache2開源協議發布。ThinkPHP從誕生以來一直秉承簡潔實用的設計原則,在保持出色的性能和至簡的代碼的同時,也注重易用性。并且擁有眾多原創功能和特性,在社區團隊的積極參與下,在易用性、擴展性和性能方面不斷優化和改進。下面我們為大家總結一下thinkphp的有缺點。
推薦教程:Thinkphp視頻教程
優點
1.容易上手,配置、部署方便
立即學習“PHP免費學習筆記(深入)”;
2.編譯緩存機制有利于性能提升
3.內置了對REST的支持
mvc和OO啥的就不說了…
缺點
1.麻煩的URL路由
正常模式:
URL -> URL路由 -> 將從URL解析得到的參數和請求傳遞給入口函數
TP的實現(以正則路由為例):
正則 -> 入口文件 + 動態參數
如:’/^blog/(d+)$/’ => ‘Blog/read?id=:1’
簡潔的實現:
’/^blog/(d+)$/’ => read // function read($id) {…}
此實現便于檢查路由規則與入口函數的匹配性并使用戶更加方便的使用解析后的URL參數,同時,TP的入口文件設計本就是多此一舉。
2.糟糕的模型設計
*1 需要手動建立模型與數據庫的關聯
缺點:需要進行一系列不必要的配置,與定義模型后自動生成數據庫表的行為相悖。
*2 對數據庫的抽象遠遠不夠
操作模型時有很強烈的操作數據庫感覺,同時由于 2*1 需要手動建立模型與數據庫的關聯 這一缺點,毫無必要的字段映射讓人惱火。
3.垃圾的模板引擎
*1 不支持模板繼承
重復寫代碼很累的親!
*2?xml格式的模板標簽
書寫不便,同時容易與html標簽混淆(最近幾年出現的模板引擎已經很少有用XML標簽的了…)
*3 不適合前端書寫
模板 + 數據 -> 渲染輸出
模板由前端書寫,數據由后臺提供,顯然TP的模板對此支持并不好。
*4 不支持模板的部分緩存
缺點:假設頁面P由A, B兩部分組成,A的更新頻率大于B,則頁面P的更新頻率與A相同。