標籤:
ThinkPHP5.0版本是一個顛覆和重構版本,官方團隊曆時十月,傾注了大量的時間和精力,採用全新的架構思想,引入了更多的PHP新特性,最佳化了核心,減少了依賴,實現了真正的惰性載入,支援composer,並針對API開發做了大量的最佳化,包括路由、日誌、異常、模型、資料庫、模板引擎和驗證等模組都已經重構,不適合原有3.2項目的升級,請謹慎考慮商業項目升級,但絕對是新項目的首選(無論是WEB還是API開發)。
ThinkPHP V5.0——為API開發而設計的高效能架構
[ 特性 ]
主要特性包括:
--------------------------------------------------------------
規範:遵循PSR-2、PSR-4規範,Composer及單元測試支援;
嚴謹:異常嚴謹的錯誤偵測和安全機制,詳細的日誌資訊,為你的開發保駕護航;
靈活:減少核心依賴,擴充更靈活、方便,支援命令列指令擴充;
API友好:出色的效能和REST支援、遠端偵錯,更好的支援API開發;
高效:惰性載入,及路由、配置和自動載入的緩衝機制;
ORM:重構的資料庫、模型及關聯,MongoDb支援;
--------------------------------------------------------------
支援ThinkPHP5的使用者請到 Github 給我們一個`star` ^_^
相對於RC4版本,更新如下:
[ 請求和路由 ]
Request對象支援動態綁定屬性
定義了路由規則的URL原地址禁止訪問
改進路由規則儲存結構
路由分組功能增強,支援嵌套和虛擬分組
路由URL高效反解
改進Request對象param方法擷取優先順序
路由增加name方法設定和擷取路由辨別碼
增加MISS和AUTO路由規則
Route類增加auto方法 支援註冊一個自動解析URL的路由
路由規則支援模型繫結
路由變數統一使用param方法擷取
路由規則標識功能和自動標識
增加產生路由緩衝指令 optimize:route
Request對象增加route方法單獨擷取路由變數
Request對象的param get post put request delete server cookie env方法的第一個參數傳入false 則表示擷取未經處理資料 不進行過濾
改進自動路由辨別碼產生 支援不同的路由規則 指向同一個路由辨別碼,改進Url自動產生對路由辨別碼的支援
改進Request類 filter屬性的初始化
改進Request類的isAjax和isPjax方法
Request類增加token方法
路由設定檔支援多個 使用 route_config_file 配置參數配置
網域名稱綁定支援https檢測
改進網域名稱綁定 支援同時綁定模組和其他 支援綁定到數組定義的路由規則,取消網域名稱綁定到分組
路由規則增加PATCH請求類型支援
增加route_complete_match配置參數設定全域路由規則定義是否採用完整匹配 可以由路由規則的參數complete_match 進行覆蓋
改進路由的 尾碼參數識別 優先於系統的偽靜態尾碼參數
Url類增加root方法用於指定當前root地址(不含網域名稱)
改進Url產生對選擇性參數的支援
[ 資料庫 ]
查詢條件自動參數綁定
改進分頁方法支援參數綁定
Query類的cache方法增加緩衝標籤參數
Query類的update和delete方法支援調用cache方法 會自動清除指定key的緩衝 配合查詢方法的cache方法一起使用
改進Query類的延遲寫入方法
Query類的column和value方法支援fetchsql
改進日期查詢方法
改進預存程序方法exec的支援
改進Connection類的getLastInsID方法擷取
記錄資料庫的串連日誌(連線時間和DSN)
改進Query類的select方法的返回結果集判斷
Connection類增加getNumRows方法
資料庫事務方法取消傳回值
改進Query類的chunk方法對主鍵的擷取
改進當資料庫驅動類型使用完整命名空間的時候 Query類的builder方法的問題
[ 模型 ]
增加虛刪除功能
關聯模型和預載入改進
關聯預載入查詢閉包支援更多的連貫操作
完善savell方法支援更新和驗證
關聯定義統一返回Relation類
Model類的has和hasWhere方法對join類型的支援
Model類的data方法 批量賦值資料的時候 清空未經處理資料
Model類的get方法第三個參數傳入true的時候會自動更新緩衝
Model類增加唯讀欄位支援
Model類增加useGlobalScope方法設定是否啟用全域查詢範圍
Model類的base方法改為靜態定義 全域多次調用有效
Model類支援設定主鍵、欄位資訊和欄位類型,不依賴自動擷取,提高效能
Model類的data方法 支援修改器
改進Relation類對非數字類型主鍵的支援
改進Relation類的一對多刪除
修正Relation類的一對多關聯預載入查詢
[ 日誌和緩衝 ]
支援日誌類型分離儲存
日誌允許設定記錄層級
增加緩衝標籤功能
緩衝類增加pull方法用於擷取並刪除
cache助手函數增加tag參數
簡化日誌資訊,隱藏資料庫密碼
增加cache/session redis驅動的庫選擇邏輯;
memcached驅動的配置參數支援option參數
偵錯模式下面 日誌記錄增加頁面的header和param參數記錄
memcached緩衝驅動增加串連帳號密碼參數
緩衝支援設定complex類型 支援配置多種緩衝並用store切換
緩衝類增加tag方法 用於緩衝標籤設定 clear方法支援清除某個緩衝標籤的資料
File類型日誌驅動支援設定單獨檔案記錄不同的記錄層級
改進檔案快取和日誌的隱藏檔名命名規範
緩衝類增加inc和dec方法 針對數值型資料提供自增和自減操作
Cache類增加has方法 get方法支援預設值
[ 其它 ]
視圖類支援設定模板引擎參數
增加表單令牌產生和驗證
增加中文驗證規則
增加image和檔案相關驗證規則
重新導向Response對象支援with方法隱含傳參
改進Session類自動初始化
session類增加pull方法用於擷取並刪除
增加Env類用於擷取環境變數
Request類get/post/put等更改賦值後param方法依然有效
改進Jump跳轉地址支援Url::build 解析
最佳化Hook類
應用偵錯模式和頁面trace支援環境變數設定
config助手函數支援 config(‘?name‘) 用法
支援使用BIND_MODULE常量的方式綁定模組
入口檔案自動綁定模組功能
改進驗證異常類的錯誤資訊和模板輸出,支援批量驗證的錯誤資訊拋出
完善console 增加output一些常用的方法
增加token助手函數 用於在頁面快速顯示令牌
增加halt方法用於變數調試並中斷輸出
改進Validate類的number驗證規則 和 integer區分開
optimize:autoload增加對extend擴充目錄的掃描
改進Validate類的boolean驗證規則 支援表單資料
改進cookie助手函數支援 判斷是否存在某個cookie值
改進abort助手函數 支援拋出HttpResponseException異常
改進File類增加對上傳錯誤的處理
改進File類move方法的返回對象增加上傳表單資訊,增加擷取檔案散列值的方法
改進File類的move方法的返回對象改為返回File對象執行個體
增加clear和optimize:config 指令
改進File類和Validate類的影像檔類型驗證
控制器的操作方法支援注入Request之外的對象執行個體
Request類 param(true) 支援擷取帶檔案的資料
input助手函數第一個參數增加預設值
Validate類增加image驗證規則 並改進max min length支援多種資料類型
json輸出時資料編碼失敗後拋出異常
[ 調整 ]
廢除路由映射(靜態路由)定義
取消url_deny_suffix配置 改由路由的deny_ext參數設定
模型save方法傳回值改為影響的記錄數,取消getId參數
Request對象controller方法返回駝峰控制器名
控制器前置操作方法不存在則拋出異常
Loader類db方法增加name標識參數
db助手函數增加第三個參數用於指定串連標識
Sqlsrv驅動預設不對資料表欄位進行小寫轉換
移除sae驅動 改為擴充包
Oracle驅動移出核心包
Firebird驅動移出核心包
取消別名定義檔案alias.php
配置參數讀取的時候取消環境變數判斷 需要讀取環境變數的時候使用Env類
環境變數定義檔案更改為 .env 由原來的PHP數組改為ini格式定義(支援數組方式)
狀態配置和擴充配置的載入順序調整 便於狀態設定檔中可以更改擴充配置的參數
取消網域名稱綁定到路由分組功能
控制器類的success和error方法url參數支援傳入Null 字元串,則不做任何處理
控制器的error success result redirect方法均不需要使用return
建立目錄的許可權修改為0644
[ 文檔 ]
5.0完全開發手冊和5.0快速入門
[ ]
官網:http://www.thinkphp.cn/down/845.html
GitHub: https://github.com/top-think/think.git (主要維護倉庫 官方核心團隊)
Composer: composer create-project topthink/think tp5 --prefer-dist
[ 擴充包 ]
下面是針對ThinkPHP5的擴充包 需要使用Composer安裝
應用單元測試:https://github.com/top-think/think-testing.git
驗證碼:https://github.com/top-think/think-captcha.git
隊列:https://github.com/top-think/think-queue.git
MongoDb支援:https://github.com/top-think/think-mongo.git
angular模板引擎:https://github.com/top-think/think-angular.git
助手庫:https://github.com/top-think/think-helper.git
資料庫遷移工具:https://github.com/top-think/think-migration.git
ThinkPHP V5.0 正式版發布