您好,登錄后才能下訂單哦!
這篇文章主要介紹“thinkphp3.2與thinkphp5.0有哪些區(qū)別”,在日常操作中,相信很多人在thinkphp3.2與thinkphp5.0有哪些區(qū)別問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”thinkphp3.2與thinkphp5.0有哪些區(qū)別”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
區(qū)別:1、3.2支持普通URL模式和正則路由定義,而5.0不支持;2、5.0新增了請求對象Request和響應(yīng)對象Response;3、5.0對錯誤零容忍,3.2不是;4、5.0版本廢棄了原來的大部分常量定義,僅僅保留了框架的路徑常量定義。
本教程操作環(huán)境:Windows7系統(tǒng)、thinkphp v5.0版、Dell G3電腦。
5.0
版本和之前版本的差異較大,本篇對熟悉3.2
版本的用戶給出了一些5.0
的主要區(qū)別。
URL和路由
5.0
的URL訪問不再支持普通URL
模式,路由也不支持正則路由定義,而是全部改為規(guī)則路由配合變量規(guī)則(正則定義)的方式:
主要改進(jìn)如下;
增加路由變量規(guī)則;
增加組合變量支持;
增加資源路由;
增加路由分組;
增加閉包定義支持;
增加MISS路由定義;
支持URL路由規(guī)則反解析;
請求對象和響應(yīng)對象
5.0
新增了請求對象Request
和響應(yīng)對象Response
,Request
統(tǒng)一處理請求和獲取請求信息,Response
對象負(fù)責(zé)輸出客戶端或者瀏覽器響應(yīng)。
模塊和控制器
控制器的命名空間有所調(diào)整,并且可以無需繼承任何的控制器類。
應(yīng)用命名空間統(tǒng)一為app
(可定義)而不是模塊名;
控制器的類名默認(rèn)不帶Controller
后綴,可以配置開啟use_controller_suffix
參數(shù)啟用控制器類后綴;
控制器操作方法采用return
方式返回數(shù)據(jù) 而非直接輸出;
廢除原來的操作前后置方法;
增加beforeActionList
屬性定義前置操作;
支持任意層次的控制器定義和訪問;
URL訪問支持自動定位控制器;
數(shù)據(jù)庫
5.0的數(shù)據(jù)庫查詢功能增強,原先需要通過模型才能使用的鏈?zhǔn)讲樵兛梢灾苯油ㄟ^Db
類調(diào)用,原來的M
函數(shù)調(diào)用可以改用db
函數(shù),例如:
3.2版本
M('User')->where(['name'=>'thinkphp'])->find();
5.0版本
db('User')->where('name','thinkphp')->find();
主要改進(jìn)如下:
支持鏈?zhǔn)讲樵儾僮鳎?/p>
數(shù)據(jù)查詢支持返回對象、數(shù)組和PDOStatement
對象;
數(shù)據(jù)集查詢支持返回數(shù)組和Collection
對象;
增加查詢構(gòu)造器,查詢語法改變;
支持閉包查詢;
支持分塊查詢;
支持視圖查詢;
增加SQL監(jiān)聽事件;
模型
5.0
的模型變化是最大的,基本上模型是完全面向?qū)ο蟮母拍?,包括關(guān)聯(lián)模型,模型類的后綴不再帶Model
,直接由命名空間區(qū)分,原來的D
函數(shù)調(diào)用改為model
函數(shù),并且必須創(chuàng)建對應(yīng)的模型類,例如:
3.2版本
D('User')->where(['name'=>'thinkphp'])->find();
5.0版本
model('User')->where('name','thinkphp')->find();
主要改進(jìn)包括:
重構(gòu)關(guān)聯(lián)模型;
支持聚合模型;
廢除視圖模型(改為數(shù)據(jù)庫的視圖查詢方法);
模型的擴展采用Trait
機制;
增加獲取器和修改器;
增加時間戳自動寫入;
增加類型字段轉(zhuǎn)換;
數(shù)組訪問支持;
JSON序列化支持;
自動驗證和自動完成
5.0的數(shù)據(jù)自動驗證和自動完成和3.2版本區(qū)別較大,5.0的數(shù)據(jù)驗證采用驗證器定義并且通過think\Validate
類進(jìn)行統(tǒng)一的驗證。自動完成則通過在模型里面定義修改器來完成。
異常
5.0
對錯誤零容忍,默認(rèn)情況下會對任何級別的錯誤拋出異常(但可以在應(yīng)用公共文件中設(shè)置錯誤級別),并且重新設(shè)計了異常頁面,展示了詳盡的錯誤信息,便于調(diào)試。
調(diào)試和日志
5.0
的頁面Trace
強化,支持瀏覽器控制臺查看Trace信息。
5.0
的日志驅(qū)動增加Socket
方式,采用SocketLog
支持遠(yuǎn)程調(diào)試。
常量
5.0
版本廢棄了原來的大部分常量定義,僅僅保留了框架的路徑常量定義,其余的常量可以使用App
類或者Request
類的相關(guān)屬性或者方法來完成,或者自己重新定義需要的常量。
廢除的常量包括:
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
函數(shù)
5.0
版本核心框架不依賴任何自定義函數(shù),但仍然封裝了一些常用功能到助手函數(shù),你可以隨意重新定義或者增加助手函數(shù)。
到此,關(guān)于“thinkphp3.2與thinkphp5.0有哪些區(qū)別”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。