區別: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電腦。
#5.0
版本和先前版本的差異較大,本篇對熟悉#3.2
版本的使用者給了一些5.0
的主要差異。
URL和路由
#5.0
的URL存取不再支援普通URL
模式,路由也不支援正規路由定義,而是全部改為規則路由配合變數規則(正規定義)的方式:
#主要改進如下;
#請求物件與回應物件
#5.0
新增了請求物件Request
和回應物件Response
,Request
統一處理請求和取得請求訊息,
物件負責輸出客戶端或瀏覽器回應。 模組和控制器
應用程式命名空間統一為
控制器的類別名稱預設不含Controller
後綴,可以配置開啟
控制器操作方法採用
增加資料庫
#5.0的資料庫查詢功能增強,原先需要透過模型才能使用的鍊式查詢可以直接透過
Db
類別調用,原來的M
函數呼叫可以改用
函數,例如:
#3.2版本M('User')->where(['name'=>'thinkphp'])->find();
db('User')->where('name','thinkphp')->find();
資料查詢支援傳回物件、陣列和
資料集查詢支援傳回陣列和模型
#5.0
的模型變化是最大的,基本上模型是完全物件導向的概念,包括關聯模型,模型類別的後綴不再帶
Model,直接由命名空間區分,原來的
D函數呼叫改為
model
3.2版本
D('User')->where(['name'=>'thinkphp'])->find();
model('User')->where('name','thinkphp')->find();
模型的擴充採用
Trait#自動驗證和自動完成
# #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
版本核心框架不依赖任何自定义函数,但仍然封装了一些常用功能到助手函数,你可以随意重新定义或者增加助手函数。
【相关教程推荐:thinkphp框架】
以上是thinkphp3.2與5.0的差別有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!