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...