thinkphp5升級步驟

thinkphp5升級步驟

thinkphp5.0升級5.1全紀錄

thinkphp5升級步驟

并拆分為app.php、cache.php 等獨立配置文件,系統默認的配置文件清單如下:

因為項目是用tp5.1開發的,網上找了一個不錯的商城系統,但是卻是5.0開發的,因此將5這個商城升級成了5.1。其中坑不少,特此記錄,以利后人。

1、首先就是facade。

立即學習PHP免費學習筆記(深入)”;

5.0沒這東西。5.1新增的門面。需要將use里對應的。對應的如下表:

thinkphp5升級步驟

2、配置文件調整

原有的配置文件config.php從應用目錄移動到和應用目錄同級的config目錄,并拆分為app.php、cache.php 等獨立配置文件,系統默認的配置文件清單如下:

thinkphp5升級步驟

換而言之就是原來所有的一級配置都獨立為一個配置文件

原來的應用extra目錄下面的配置文件直接移動到config目錄下面。

原來模塊的配置文件(包括extra目錄下面的)直接移動到模塊下的config目錄,然后參考上面的應用配置文件進行調整。

5.1的配置文件全部采用二級配置方式,所有不帶一級配置名的參數都會作為app的二級配置,例如

config('app_debug');

等同于

config('app.app_debug');

3、常量調整

5.1取消了所有的框架內置常量(不影響應用代碼中的自定義常量),如需獲取,請使用thinkacadeApp類的內置方法以及thinkacadeEnv類獲取,下面給出的是5.0和5.1的常量對照表:

4、模型調整

模型的數據集查詢始終返回數據集對象而不再是數組;

模型的數據表主鍵如果不是id,則必須設置模型的pk屬性;

軟刪除trait引入更改為 use thinkmodelconcernSoftDelete;

全局查詢范圍base方法中無需添加軟刪除條件;

聚合模型功能廢除,使用關聯模型配合關聯自動寫入功能替代,更靈活;

模型的查詢范圍scope方法調用后只能使用數據庫的查詢方法;

取消模型的數據驗證功能,請使用控制器驗證或者路由驗證替代;

這個模型調整,一定要看得細之又細。例如第二點里的主鍵。商城系統里大量用到了關聯模型,數據表里的主鍵不管是什么名,5.0時代都是可以自動獲取的,但是5.1里默認都是id,必須用$pk=user_id指定主鍵名,否則會報”模型屬性不存在”這樣的錯誤,坑了我2小時。

5、控制器調整

_initialize方法更改為initialize(坑了我1小時,眼神不好使的,都會被坑)

6、最后一個步驟不要忘了:清空緩存目錄下的所有文件

7、其他事宜,建議詳細看TP5.1的文檔,不要放過一個字。

推薦學習:thinkphp5

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享