您好,登錄后才能下訂單哦!
小編給大家分享一下thinkphp5如何升級,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
ThinkPHP5.0升級5.1全紀(jì)錄
thinkphp5升級步驟
并拆分為app.php、cache.php 等獨(dú)立配置文件,系統(tǒng)默認(rèn)的配置文件清單如下:
因?yàn)轫?xiàng)目是用tp5.1開發(fā)的,網(wǎng)上找了一個(gè)不錯(cuò)的商城系統(tǒng),但是卻是5.0開發(fā)的,因此將5這個(gè)商城升級成了5.1。其中坑不少,特此記錄,以利后人。
1、首先就是facade。
5.0沒這東西。5.1新增的門面。需要將use里對應(yīng)的。對應(yīng)的如下表:
2、配置文件調(diào)整
原有的配置文件config.php從應(yīng)用目錄移動(dòng)到和應(yīng)用目錄同級的config目錄,并拆分為app.php、cache.php 等獨(dú)立配置文件,系統(tǒng)默認(rèn)的配置文件清單如下:
換而言之就是原來所有的一級配置都獨(dú)立為一個(gè)配置文件
原來的應(yīng)用extra目錄下面的配置文件直接移動(dòng)到config目錄下面。
原來模塊的配置文件(包括extra目錄下面的)直接移動(dòng)到模塊下的config目錄,然后參考上面的應(yīng)用配置文件進(jìn)行調(diào)整。
5.1的配置文件全部采用二級配置方式,所有不帶一級配置名的參數(shù)都會作為app的二級配置,例如
config('app_debug');
等同于
config('app.app_debug');
3、常量調(diào)整
5.1取消了所有的框架內(nèi)置常量(不影響應(yīng)用代碼中的自定義常量),如需獲取,請使用thinkacadeApp類的內(nèi)置方法以及thinkacadeEnv類獲取,下面給出的是5.0和5.1的常量對照表:
4、模型調(diào)整
模型的數(shù)據(jù)集查詢始終返回?cái)?shù)據(jù)集對象而不再是數(shù)組;
模型的數(shù)據(jù)表主鍵如果不是id,則必須設(shè)置模型的pk屬性;
軟刪除trait引入更改為 use thinkmodelconcernSoftDelete;
全局查詢范圍base方法中無需添加軟刪除條件;
聚合模型功能廢除,使用關(guān)聯(lián)模型配合關(guān)聯(lián)自動(dòng)寫入功能替代,更靈活;
模型的查詢范圍scope方法調(diào)用后只能使用數(shù)據(jù)庫的查詢方法;
取消模型的數(shù)據(jù)驗(yàn)證功能,請使用控制器驗(yàn)證或者路由驗(yàn)證替代;
這個(gè)模型調(diào)整,一定要看得細(xì)之又細(xì)。例如第二點(diǎn)里的主鍵。商城系統(tǒng)里大量用到了關(guān)聯(lián)模型,數(shù)據(jù)表里的主鍵不管是什么名,5.0時(shí)代都是可以自動(dòng)獲取的,但是5.1里默認(rèn)都是id,必須用$pk=user_id指定主鍵名,否則會報(bào)"模型屬性不存在"這樣的錯(cuò)誤,坑了我2小時(shí)。
5、控制器調(diào)整
_initialize方法更改為initialize(坑了我1小時(shí),眼神不好使的,都會被坑)
6、最后一個(gè)步驟不要忘了:清空緩存目錄下的所有文件
7、其他事宜,建議詳細(xì)看TP5.1的文檔,不要放過一個(gè)字。
看完了這篇文章,相信你對“thinkphp5如何升級”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。