溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

thinkphp3.2與thinkphp5.0有哪些區別

發布時間:2022-02-15 09:07:43 來源:億速云 閱讀:565 作者:iii 欄目:編程語言

這篇文章主要介紹“thinkphp3.2與thinkphp5.0有哪些區別”,在日常操作中,相信很多人在thinkphp3.2與thinkphp5.0有哪些區別問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”thinkphp3.2與thinkphp5.0有哪些區別”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

區別:1、3.2支持普通URL模式和正則路由定義,而5.0不支持;2、5.0新增了請求對象Request和響應對象Response;3、5.0對錯誤零容忍,3.2不是;4、5.0版本廢棄了原來的大部分常量定義,僅僅保留了框架的路徑常量定義。

本教程操作環境:Windows7系統、thinkphp v5.0版、Dell G3電腦。

thinkphp5.0 與thinkphp 3.2的區別

5.0版本和之前版本的差異較大,本篇對熟悉3.2版本的用戶給出了一些5.0的主要區別。

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版本核心框架不依賴任何自定義函數,但仍然封裝了一些常用功能到助手函數,你可以隨意重新定義或者增加助手函數。

到此,關于“thinkphp3.2與thinkphp5.0有哪些區別”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女