ThinkPHP5.0版本是一個顛覆和重構版本,官方團隊歷時十月,傾注了大量的時間和精力,採用全新的架構思想,引入了更多的PHP新特性,優化了核心,減小了依賴,實現了真正的惰性加載,支持composer,並針對API開發作了大量的優化,包括路由、日誌、異常、模型、數據庫、模板引擎和驗證等模塊都已經重構,不適合原有3.2項目的升級,請慎重考慮商業項目升級,但絕對是新項目的首選(不管是WEB仍是API開發)。php
主要特性包括:
--------------------------------------------------------------
規範:遵循PSR-二、PSR-4規範,Composer及單元測試支持;
嚴謹:異常嚴謹的錯誤檢測和安全機制,詳細的日誌信息,爲你的開發保駕護航;
靈活:減小核心依賴,擴展更靈活、方便,支持命令行指令擴展;
API友好:出色的性能和REST支持、遠程調試,更好的支持API開發;
高效:惰性加載,及路由、配置和自動加載的緩存機制;
ORM:重構的數據庫、模型及關聯,MongoDb支持;
--------------------------------------------------------------
支持ThinkPHP5的用戶請到 Github 給咱們一個`star` ^_^
相對於RC4版本,更新以下:html
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生成對可選參數的支持git
查詢條件自動參數綁定
改進分頁方法支持參數綁定
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方法的問題github
增長軟刪除功能
關聯模型和預載入改進
關聯預載入查詢閉包支持更多的連貫操做
完善savell方法支持更新和驗證
關聯定義統一返回Relation類
Model類的has和hasWhere方法對join類型的支持
Model類的data方法 批量賦值數據的時候 清空原始數據
Model類的get方法第三個參數傳入true的時候會自動更新緩存
Model類增長只讀字段支持
Model類增長useGlobalScope方法設置是否啓用全局查詢範圍
Model類的base方法改成靜態定義 全局屢次調用有效
Model類支持設定主鍵、字段信息和字段類型,不依賴自動獲取,提升性能
Model類的data方法 支持修改器
改進Relation類對非數字類型主鍵的支持
改進Relation類的一對多刪除
修正Relation類的一對多關聯預載入查詢web
支持日誌類型分離存儲
日誌容許設置記錄級別
增長緩存標籤功能
緩存類增長pull方法用於獲取並刪除
cache助手函數增長tag參數
簡化日誌信息,隱藏數據庫密碼
增長cache/session redis驅動的庫選擇邏輯;
memcached驅動的配置參數支持option參數
調試模式下面 日誌記錄增長頁面的header和param參數記錄
memcached緩存驅動增長鏈接帳號密碼參數
緩存支持設置complex類型 支持配置多種緩存並用store切換
緩存類增長tag方法 用於緩存標籤設置 clear方法支持清除某個緩存標籤的數據
File類型日誌驅動支持設置單獨文件記錄不一樣的日誌級別
改進文件緩存和日誌的存儲文件名命名規範
緩存類增長inc和dec方法 針對數值型數據提供自增和自減操做
Cache類增長has方法 get方法支持默認值redis
視圖類支持設置模板引擎參數
增長表單令牌生成和驗證
增長中文驗證規則
增長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輸出時數據編碼失敗後拋出異常sql
廢除路由映射(靜態路由)定義
取消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參數支持傳入空字符串,則不作任何處理
控制器的error success result redirect方法均不須要使用return
建立目錄的權限修改成0644thinkphp
官網:http://www.thinkphp.cn/down/845.html
GitHub: https://github.com/top-think/think.git (主要維護倉庫 官方核心團隊)
Composer: composer create-project topthink/think tp5 --prefer-distjson
下面是針對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