国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開發(fā) > ThinkPHP > 正文

ThinkPHP5.0版本和ThinkPHP3.2版本的區(qū)別

2024-09-09 15:20:27
字體:
供稿:網(wǎng)友

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

URL和路由

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

主要改進(jìn)如下:

增加路由變量規(guī)則;

增加組合變量支持;

增加資源路由;

增加路由分組;

增加閉包定義支持;

增加MISS路由定義;

支持URL路由規(guī)則反解析;

請(qǐng)求對(duì)象和響應(yīng)對(duì)象

5.0新增了請(qǐng)求對(duì)象Request和響應(yīng)對(duì)象Response,Request統(tǒng)一處理請(qǐng)求和獲取請(qǐng)求信息,Response對(duì)象負(fù)責(zé)輸出客戶端或者瀏覽器響應(yīng)。

模塊和控制器

控制器的命名空間有所調(diào)整,并且可以無需繼承任何的控制器類。

應(yīng)用命名空間統(tǒng)一為app(可定義)而不是模塊名;

控制器的類名默認(rèn)不帶Controller后綴,可以配置開啟use_controller_suffix參數(shù)啟用控制器類后綴;

控制器操作方法采用return方式返回?cái)?shù)據(jù) 而非直接輸出;

廢除原來的操作前后置方法;

增加beforeActionList屬性定義前置操作;

支持任意層次的控制器定義和訪問;

URL訪問支持自動(dòng)定位控制器;

數(shù)據(jù)庫(kù)

5.0的數(shù)據(jù)庫(kù)查詢功能增強(qiáng),原先需要通過模型才能使用的鏈?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ù)查詢支持返回對(duì)象、數(shù)組和PDOStatement對(duì)象;

數(shù)據(jù)集查詢支持返回?cái)?shù)組和Collection對(duì)象;

增加查詢構(gòu)造器,查詢語法改變;

支持閉包查詢;

支持分塊查詢;

支持視圖查詢;

增加SQL監(jiān)聽事件;

模型

5.0的模型變化是最大的,基本上模型是完全面向?qū)ο蟮母拍睿P(guān)聯(lián)模型,模型類的后綴不再帶Model,直接由命名空間區(qū)分,原來的D函數(shù)調(diào)用改為model函數(shù),并且必須創(chuàng)建對(duì)應(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ù)庫(kù)的視圖查詢方法);

模型的擴(kuò)展采用Trait機(jī)制;

增加獲取器和修改器;

增加時(shí)間戳自動(dòng)寫入;

增加類型字段轉(zhuǎn)換;

數(shù)組訪問支持;

JSON序列化支持;

自動(dòng)驗(yàn)證和自動(dòng)完成

5.0的數(shù)據(jù)自動(dòng)驗(yàn)證和自動(dòng)完成和3.2版本區(qū)別較大,5.0的數(shù)據(jù)驗(yàn)證采用驗(yàn)證器定義并且通過think/Validate類進(jìn)行統(tǒng)一的驗(yàn)證。自動(dòng)完成則通過在模型里面定義修改器來完成。

異常

5.0對(duì)錯(cuò)誤零容忍,默認(rèn)情況下會(huì)對(duì)任何級(jí)別的錯(cuò)誤拋出異常(但可以在應(yīng)用公共文件中設(shè)置錯(cuò)誤級(jí)別),并且重新設(shè)計(jì)了異常頁(yè)面,展示了詳盡的錯(cuò)誤信息,便于調(diào)試。

調(diào)試和日志

5.0的頁(yè)面Trace強(qiáng)化,支持瀏覽器控制臺(tái)查看Trace信息。

5.0的日志驅(qū)動(dòng)增加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ù)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 河东区| 淄博市| 贵定县| 长寿区| 芦溪县| 定日县| 东乡县| 洛阳市| 隆昌县| 安福县| 安西县| 时尚| 肥城市| 承德市| 嘉善县| 桃源县| 灵武市| 镇江市| 永州市| 正蓝旗| 佛冈县| 建宁县| 本溪| 阿勒泰市| 吉隆县| 虞城县| 竹溪县| 石狮市| 古交市| 阿拉善右旗| 巴塘县| 峨边| 淮安市| 巴林左旗| 吴川市| 双流县| 三亚市| 万年县| 白银市| 惠水县| 互助|