Thinkphp3 2版本與版本5的區別

2022-06-10 22:45:15 字數 1815 閱讀 3590

url的變動

命名規範

目錄和檔名採用『小寫+下劃線』,以小寫字母開頭;

類庫、函式檔案統一以.php為字尾;

類的檔名均以命名空間定義,且命名空間的路徑和類庫檔案所在路徑一致(包括大小寫);

資料庫

模型鏈式查詢==>呼叫db類(m函式==>db函式):

m('user')->where(['name'=>'thinkphp'])->find();

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

路由

不再支援普通url模式、正則路由定義,全部改為規則路由配合變數規則(正則定義)的方式

模型

模型查詢新增靜態方法,完全物件導向,且必須有對應模型類(d函式==>model函式)

d('user')->where(['name'=>'thinkphp'])->find();

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

控制器

調整命名空間,可無需繼承任何控制器類

控制器的類名預設不帶controller字尾

操作方法採用return返回資料

廢除操作前後置方法

輸出模板

繼承think\controller:return $this->fetch('index/hello');

沒有繼承think\controller:return view('index/hello');

自動驗證和自動完成

通過think\validate類統一驗證,模型裡定義修改器完成

異常

展示詳盡錯誤資訊,便於除錯

除錯和日誌

支援瀏覽器控制台檢視trace資訊,採用socketlog支援遠端除錯

常量

系統常量的廢棄,僅保留框架的路徑常量定義

函式

不依賴任何函式,只是對常用的操作封裝提供了助手函式

容器與依賴注入

將類的例項作為引數,傳遞給類方法,自動觸發依賴注入==> 相當於直接例項化類,可以直接呼叫類方法、屬性

容器:物件打包器

依賴注入:把物件傳入到方法中使用

繫結閉包到容器:閉包,即匿名函式,繫結到容器,僅需將匿名函式變數以鍵值對傳入

facade

①指定繫結:建立乙個類,繼承 \think\facade ,靜態方法繫結要**的類,在另一空間use該**類,靜態呼叫

②動態繫結:\think\facade::bind(『**類』,'要繫結的類'),靜態呼叫

==>相當於例項化後呼叫方法、屬性,①②區別在於是否在靜態**類繫結指定類名

入口檔案:public/index.php

載入基類:thinkphp/base.php(完成核心類註冊:到容器、靜態**)

e.g傳統例項化:new request()

靜態**:think\facade\request

依賴注入:request $request

父類controller中的屬性$request:$this->request

ThinkPHP3 2版本安全更新

近日我們收到了乙個關於3.2版本的漏洞提醒,官方已經第一時間進行處理和更新。由於3.2版本已經過了官方的維護和安全更新週期,而且大量的開發者也進行了二次開發,因此不再發布新版,官方僅進行安全公告和修復建議。請還在使用3.2版本的使用者按照下面的方式進行安全修復 只需要修改一處核心內建公共函式 找到t...

ThinkPHP 3 2 版本公升級了哪些內容

thinkphp 3.2發布了挺長時間了,這裡也總結下這次thinkphp 3.2到底發生了哪些變化,方便程式設計師們進行開發。前言thinkphp 3.2 基於 thinkphp 3.1 的基礎上有許多的變化,我覺得這個版本應該設立為 thinkphp 4.0 而不是什麼 3.2。如果你在使用 t...

ThinkPHP 3 2 版本公升級了哪些內容

thinkphp 3.2發布了挺長時間了,這裡也總結下這次thinkphp 3.2到底發生了哪些變化,方便程式設計師們進行開發。前言thinkphp 3.2 基於 thinkphp 3.1 的基礎上有許多的變化,我覺得這個版本應該設立為 thinkphp 4.0 而不是什麼 3.2。如果你在使用 t...