Thinkphp5和Thinkphp3的區(qū)別對比以及單字母函數(shù)對應(yīng)的助手函數(shù)
TP5在很多方面相比TP3升級和提升。盡管TP3已經(jīng)有一定的市場和用戶群體,但新項(xiàng)目還是建議使用TP5。thinkphp3.2中一些快捷大寫單字母函數(shù),比如 U(),I() , C(),M() , D() , W()等,這些在thinkphp5 中已經(jīng)不再使用,而是改用助手函數(shù)來代替。
tp5 和 tp3 的一些區(qū)別
一、控制器
1、tp5 控制器的類名默認(rèn)不攜帶了 Controller 后綴,tp3 需要攜帶 Controller 后綴
2、tp5 控制器的方法中用 return 返回內(nèi)容
二、函數(shù)
tp5 單字母函數(shù)廢棄了,比如 C M D 方法,默認(rèn)系統(tǒng)加載助手(helper.php)函數(shù) 。
三、默認(rèn)返回值
tp5 模型查詢的時(shí)候返回默認(rèn)是個(gè)‘對象’,系統(tǒng)默認(rèn)增加了'toArray'方法來轉(zhuǎn)換。
四、數(shù)據(jù)庫
1、tp5 的數(shù)據(jù)庫查詢功能非常強(qiáng)大,tp3 需要通過模型才能使用的鏈?zhǔn)讲樵?現(xiàn)在 tp5 可以直接通過 Db 類調(diào)用,原來的 M 函數(shù)調(diào)用可以改用 db 函數(shù) 等
2、tp5 的模型查詢增加了靜態(tài)方法
五、異常
1、tp5 對錯(cuò)誤級別是零容忍,默認(rèn)情況下會(huì)對任何級別的錯(cuò)誤拋出異常,當(dāng)然新版本重新設(shè)計(jì)了異常頁面,頁面也比之前好看多了,展示了詳盡的錯(cuò)誤信息,便于調(diào)試,非常方便
六、tp5 完全支持惰性加載
這點(diǎn)性能較比之前好多了。
七、總結(jié)
1、TP5還使用了面向?qū)ο蟮脑O(shè)計(jì)理念,采用了更多PHP7中的新特性。TP3基于PHP5.4版本,目前不能用于PHP7環(huán)境,因此在運(yùn)行環(huán)境方面相比TP5劣勢較大。
2、TP5可以顯著地縮短開發(fā)周期,同時(shí)提高代碼質(zhì)量和可讀性。這得益于TP5提供了更多個(gè)性化的擴(kuò)展和插件,以及更為靈活的系統(tǒng)架構(gòu)。TP5還提供了更好的模板解析功能和更加智能的代碼提示功能,讓程序員更加便捷地開發(fā)項(xiàng)目。
3、TP5使用的是基于composer進(jìn)行管理的模塊化設(shè)計(jì),可以更加方便地管理第三方庫和依賴關(guān)系,提高了系統(tǒng)的性能和可擴(kuò)展性。另外,TP5還支持緩存和路由緩存等機(jī)制,增加了頁面加載速度,提高了系統(tǒng)響應(yīng)速度,從而優(yōu)化了用戶的體驗(yàn)。
4、TP5使用更加安全的密碼哈希機(jī)制替代了TP3的MD5加密算法,提高用戶密碼的安全性。同時(shí),TP5還支持類似于選項(xiàng)注入保護(hù)、XSS防護(hù)、SQL注入防護(hù)等特性,增強(qiáng)了系統(tǒng)的安全性能。
綜上所述,TP5在很多方面相比TP3升級和提升。盡管TP3已經(jīng)有一定的市場和用戶群體,但新項(xiàng)目還是建議使用TP5。
tp3單字母函數(shù)對應(yīng)的tp5助手函數(shù)
thinkphp3.2中一些快捷大寫單字母函數(shù),比如 U(),I() , C(),M() , D() , W()等,這些在thinkphp5 中已經(jīng)不再使用,而是改用助手函數(shù)來代替:
S=>cache(),C=>config(),M/D=>model(),U=>url(),I=>input(),E=>exception(),L=>lang(),A=>controller(),R=>action(),W=>widget() , display=>view()/fetch()
模型操作:
tp3的 getDbFields 獲取當(dāng)前模型對應(yīng)的表的所有字段
tp5改為 getTableFields()
模版渲染:
$this->display() 改用 return view() 或 return $this->fetch();
tp5助手函數(shù)功能描述:
abort 中斷執(zhí)行并發(fā)送HTTP狀態(tài)碼
action 調(diào)用控制器類的操作
cache 緩存管理
config 獲取和設(shè)置配置參數(shù)
controller 實(shí)例化控制器
cookie Cookie管理
db 實(shí)例化數(shù)據(jù)庫類
debug 調(diào)試時(shí)間和內(nèi)存占用
dump 瀏覽器友好的變量輸出
exception 拋出異常處理
halt 變量調(diào)試輸出并中斷執(zhí)行
import 導(dǎo)入所需的類庫
input 獲取輸入數(shù)據(jù) 支持默認(rèn)值和過濾
json JSON數(shù)據(jù)輸出
jsonp JSONP數(shù)據(jù)輸出
lang 獲取語言變量值
load_trait 快速導(dǎo)入Traits PHP5.5 以上無需調(diào)用
model 實(shí)例化Model
redirect 重定向輸出
request 實(shí)例化Request對象
response 實(shí)例化Response對象
session Session管理
trace 記錄日志信息
token 生成表單令牌輸出
url Url生成
validate 實(shí)例化驗(yàn)證器
vendor 快速導(dǎo)入第三方框架類庫
view 渲染模板輸出
widget 渲染輸出Widget
xml 數(shù)據(jù)輸出xml
總結(jié)
到此這篇關(guān)于Thinkphp5和Thinkphp3的區(qū)別對比以及單字母函數(shù)對應(yīng)的助手函數(shù)的文章就介紹到這了,更多相關(guān)tp3、tp5區(qū)別對比內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
php實(shí)現(xiàn)的簡單數(shù)據(jù)庫操作Model類
這篇文章主要介紹了php實(shí)現(xiàn)的簡單數(shù)據(jù)庫操作Model類,結(jié)合實(shí)例形式分析了php數(shù)據(jù)庫操作模型類的定義與使用技巧,包括數(shù)據(jù)庫的基本增刪改查等功能,需要的朋友可以參考下2016-11-11php jq jquery getJSON跨域提交數(shù)據(jù)完整版
getJSON跨域提交數(shù)據(jù),想必大家已在很多文章中見到過,下面的示例是php jq jquery getJSON跨域提交數(shù)據(jù)完整代碼,感興趣的朋友可以參考下2013-09-09解析PHP中的內(nèi)存管理,PHP動(dòng)態(tài)分配和釋放內(nèi)存
本篇文章是對PHP中的內(nèi)存管理,PHP動(dòng)態(tài)分配和釋放內(nèi)存進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06php的命名空間與自動(dòng)加載實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于php的命名空間與自動(dòng)加載實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用php具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08vs中通過剪切板循環(huán)來循環(huán)粘貼不同內(nèi)容
只要按Ctrl+Shift+V鍵,就可以在過去剪切或復(fù)制到剪切板上的20條內(nèi)容間進(jìn)行循環(huán)粘貼,太帥了哈哈!2011-04-04連接到txt文本的超鏈接,不直接打開而是點(diǎn)擊后下載的處理方法
默認(rèn)情況下瀏覽器Mime類型設(shè)定中會(huì)直接打開txt文本,但是如果想做到直接下載需要對Mime進(jìn)行設(shè)置。2009-07-07