ThinkPHP5.0和ThinkPHP3.2版本區別詳解

來源:互聯網
上載者:User
5.0版本和之前版本的差異較大,本篇對熟悉3.2版本的使用者給出了一些5.0的主要區別。本文主要和大家分享ThinkPHP5.0版本和ThinkPHP3.2版本的區別。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望能協助到大家。

URL和路由

5.0的URL訪問不再支援普通URL模式,路由也不支援正則路由定義,而是全部改為規則路由配合變數規則(正則定義)的方式:

主要改進如下:

增加路由變數規則;
增加組合變數支援;
增加資源路由;
增加路由分組;
增加閉包定義支援;
增加MISS路由定義;
支援URL路由規則反解析;

請求對象和響應對象

5.0新增了請求對象Request和響應對象Response,Request統一處理請求和擷取請求資訊,Response對象負責輸出用戶端或者瀏覽器響應。

模組和控制器

控制器的命名空間有所調整,並且可以無需繼承任何的控制器類。

應用命名空間統一為app(可定義)而不是模組名;
控制器的類名預設不帶Controller尾碼,可以配置開啟use_controller_suffix參數啟用控制器類尾碼;
控制器操作方法採用return方式返回資料 而非直接輸出;
廢除原來的操作前後置方法;
增加beforeActionList屬性定義前置操作;
支援任意層次的控制器定義和訪問;
URL訪問支援自動定位控制器;

資料庫

5.0的資料庫查詢功能增強,原先需要通過模型才能使用的鏈式查詢可以直接通過Db類調用,原來的M函數調用可以改用db函數,例如:

3.2版本

M('User')->where(['name'=>'thinkphp'])->find();

5.0版本

db('User')->where('name','thinkphp')->find();

主要改進如下:

支援鏈式查詢操作;
資料查詢支援返回對象、數組和PDOStatement對象;
資料集查詢支援返回數組和Collection對象;
增加查詢構造器,查詢文法改變;
支援閉包查詢;
支援分塊查詢;
支援視圖查詢;
增加SQL監聽事件;

模型

5.0的模型變化是最大的,基本上模型是完全物件導向的概念,包括關聯模型,模型類的尾碼不再帶Model,直接由命名空間區分,原來的D函數調用改為model函數,並且必須建立對應的模型類,例如:

3.2版本

D('User')->where(['name'=>'thinkphp'])->find();

5.0版本

model('User')->where('name','thinkphp')->find();

主要改進包括:

重構關聯模型;
支援彙總模型;
廢除視圖模型(改為資料庫的視圖查詢方法);
模型的擴充採用Trait機制;
增加擷取器和修改器;
增加時間戳記自動寫入;
增加類型欄位轉換;
數組訪問支援;
JSON序列化支援;

自動驗證和自動完成

5.0的資料自動驗證和自動完成和3.2版本區別較大,5.0的資料驗證採用驗證器定義並且通過think\Validate類進行統一的驗證。自動完成則通過在模型裡面定義修改器來完成。

異常

5.0對錯誤零容忍,預設情況下會對任何層級的錯誤拋出異常(但可以在應用公用檔案中設定錯誤層級),並且重新設計了異常頁面,展示了詳盡的錯誤資訊,便於調試。

調試和日誌

5.0的頁面Trace強化,支援瀏覽器控制台查看Trace資訊。

5.0的日誌驅動增加Socket方式,採用SocketLog支援遠端偵錯。

常量

5.0版本廢棄了原來的大部分常量定義,僅僅保留了架構的路徑常量定義,其餘的常量可以使用App類或者Request類的相關屬性或者方法來完成,或者自己重新定義需要的常量。

廢除的常量包括:

REQUEST_METHOD IS_GET IS_POST IS_PUT IS_DELETE IS_AJAX __EXT__ COMMON_MODULE MODULE_NAME CONTROLLER_NAME ACTION_NAME APP_NAMESPACE APP_DEBUG MODULE_PATH

函數

5.0版本核心架構不依賴任何自訂函數,但仍然封裝了一些常用功能到助手函數,你可以隨意重新定義或者增加助手函數。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.