ThinkPHP5.0升級5.1完整紀錄
thinkphp5升級步驟
##並分割為app.php、cache.php 等獨立設定文件,系統預設的設定檔清單如下:因為專案是用tp5.1開發的,網路上找了一個不錯的商城系統,但卻是5.0開發的,因此將5這個商城升級成了5.1。其中坑不少,特此紀錄,以利後人。1、首先就是facade。
5.0沒這東西。 5.1新增的門面。需要將use裡對應的。對應的如下表:2、設定檔調整
原有的設定檔config.php從應用程式目錄移動到和應用目錄同級的config目錄,並拆分為app.php、cache.php 等獨立配置文件,系統預設的配置文件清單如下: 換而言之就是原來所有的一級配置都獨立為一個設定檔原來的應用程式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升級步驟的詳細內容。更多資訊請關注PHP中文網其他相關文章!