Swoft 2.0.6 正式版本釋出
阿新 • • 發佈:2019-12-31
什麼是 Swoft ?
Swoft 是一款基於 Swoole 擴充套件實現的 PHP 微服務協程框架。Swoft 能像 Go 一樣,內建協程網路伺服器及常用的協程客戶端且常駐記憶體,不依賴傳統的 PHP-FPM。有類似 Go 語言的協程操作方式,有類似 Spring Cloud 框架靈活的註解、強大的全域性依賴注入容器、完善的服務治理、靈活強大的 AOP、標準的 PSR 規範實現等等。
Swoft 通過長達三年的積累和方向的探索,把 Swoft 打造成 PHP 界的 Spring Cloud,它是 PHP 高效能框架和微服務治理的最佳選擇。
Swoft v2.0.6
Swoft 2.0 經過幾個版本的打磨和優化,已在大量的生產業務中使用,得到很多使用者的肯定和支援。正式版本我們做了許多改進和優化,擁有了更好的效能。
新增和改進了兩個開發工具,方便開發者使用:
-
swoft/swoole-tracker
可以幫開發者解決鏈路追蹤、記憶體洩漏、阻塞檢查意以及效能分析 -
swoft-cli
現在支援基本的應用骨架和元件結構建立,以及類檔案生成功能
除錯利器 (swoft-swoole-tracker)
Swoft 除錯利器可以幫開發者解決鏈路追蹤、記憶體洩漏、阻塞檢查意以及效能分析。
安裝元件:
composer require swoft/swoole-tracker
複製程式碼
配置中介軟體:
return [
// ...
'httpDispatcher' => [
// Add global http middleware
'middlewares' => [
// ...
\Swoft\Swoole\Tracker\Middleware\SwooleTrackerMiddleware::class,],// ...
];
複製程式碼
鏈路追蹤
服務監控
服務狀態
記憶體洩漏
阻塞檢測
開發工具 (swoft-cli)
swoft-cli 新增場景功能類生成(控制器、中介軟體、任務等),建立專案骨架、元件初始化腳手架工具。
安裝:
wget https://github.com/swoft-cloud/swoft-cli/releases/download/{VERSION}/swoftcli.phar
複製程式碼
功能類生成
php swoftcli.phar gen:http-ctrl user --prefix /users
複製程式碼
建立新專案
現在可以通過swoft-cli來快速建立一個新專案。預設提供 5 套模板倉庫,方便使用者初始化不同專案骨架。
php swoftcli.phar create:application --help
複製程式碼
建立新元件
也可以通過swoft-cli來建立新的元件,並幫助你快速完成初始化配置:
php swoftcli.phar create:component --help
複製程式碼
更新內容
修復(Fixed):
- 修復 ws server收到訊息時,預設使用當前fd作為響應訊息的客戶端 3a8890cf
- 修復 ws server通過swoole server拿到的全部連線裡,fd的型別可能不是整型導致報錯。0fa79d7
- 修復 stdlib SystemHelper 在 windows 10 中會被 Defender 刪除 71c2893
- 修復
increment/decrement
多拿了一個連線 94c7171 - 修復 模型屬性
$modelTimestamps
關閉了無效 94c7171 - 修復 在初始化前呼叫了log,導致可能會在啟動階段報context丟失錯誤 5a27704f
- 修復 ws server的握手和open使用同一個頂級協程ID,如果有一個先執行完成,可能會導致後面的出現session丟失 c2cd17a
- 修復
after
定時器傳遞引數 bug 8ed609a - 修復定時任務記憶體洩漏和日誌列印資料丟失問題 aa6bc32
- 優化 Http server
sgo
處理流程 e60d92e - 修復資料庫在事物情況下重連導致資料不一致問題 c2e87f2
- 修復 Aop 極端情況返回
0
問題 85bc1b1 - 修復
BeanFactory::createBean()
方法建立問題 c2e2c89 - 修復 RPC 錯誤資料是字串問題 3a34658
- 修復
redisCluster
初始化問題 3a60c06 - 修復
DbException
沒有丟擲Database
的異常Code
3a60c06 - 修復
ModelAttribute
的getter
和setter
駝峰判斷錯誤 2e2f0f1 - 修復
Aggregate
聚合,返回字串強行轉換int
錯誤 7aa98a6 - 修復模型
updateCounters
方法更新之後沒有同步實體資料 967d6f8
更新(Update):
- 調整 ws server在worker 退出時自動關閉連線,新增開關配置,可以選擇是否開啟。3a8890c
- ws server 新增事件:
MESSAGE_PUSH
OPEN_BEFORE
MESSAGE_RECEIVE
e1b0583
增強(Enhancement):
- 新增日誌按時間切割 f649df2
- 新增日誌支援傳遞額外引數 55d5533
- 調整和新增了一些ws server相關事件,方便使用者使用 e1b0583
- 模型對
Prop
支援 630aad8 - 新增連線連線池(mysql/redis/rpc)啟動初始化連線功能 a367173
- tcp server 使用長度分包時,支援自定義頭部資料打包、解包格式 a6fbe932
- RPC 呼叫錯誤資訊調整 d9226b1
- 新增操作
Database
異常,列印控制檯 錯誤SQL
3a60c06 - 新增操作資料遷移
int
系列 長度支援 967d6f8 - 新增獲取原始 sql 方法
getRawSql
967d6f8 - 擴充套件
updateOrInsert
和updateOrCreate
支援自增引數 967d6f8
擴充套件(Extra):
-
Swoftcli
已經支援基本的應用骨架和元件結構建立,以及類檔案生成功能 -
SwoftTracker
支援方便開發者除錯