Swoft 2.0.6 正式版本發佈

什麼是 Swoft ?

Swoft 是一款基於 Swoole 擴展實現的 PHP 微服務協程框架。Swoft 能像 Go 同樣,內置協程網絡服務器及經常使用的協程客戶端且常駐內存,不依賴傳統的 PHP-FPM。有相似 Go 語言的協程操做方式,有相似 Spring Cloud 框架靈活的註解、強大的全局依賴注入容器、完善的服務治理、靈活強大的 AOP、標準的 PSR 規範實現等等。php

Swoft 經過長達三年的積累和方向的探索,把 Swoft 打形成 PHP 界的 Spring Cloud, 它是 PHP 高性能框架和微服務治理的最佳選擇。mysql

Swoft v2.0.6

Swoft 2.0 通過幾個版本的打磨和優化,已在大量的生產業務中使用,獲得不少用戶的確定和支持。正式版本咱們作了許多改進和優化,擁有了更好的性能。git

新增和改進了兩個開發工具,方便開發者使用:github

  • swoft/swoole-tracker 能夠幫開發者解決鏈路追蹤、內存泄漏、阻塞檢查意以及性能分析
  • swoft-cli 如今支持基本的應用骨架和組件結構建立,以及類文件生成功能

調試利器 (swoft-swoole-tracker)

Swoft 調試利器能夠幫開發者解決鏈路追蹤、內存泄漏、阻塞檢查意以及性能分析。redis

安裝組件:sql

composer require swoft/swoole-tracker
複製代碼

配置中間件:數據庫

return [
   // ...
   'httpDispatcher'    => [
       // Add global http middleware
       'middlewares' => [
            // ...
            \Swoft\Swoole\Tracker\Middleware\SwooleTrackerMiddleware::class,
       ],
   ],
   // ...
];
複製代碼

鏈路追蹤

服務監控

服務狀態

內存泄漏

阻塞檢測

開發工具 (swoft-cli)

swoft-cli 新增場景功能類生成(控制器、中間件、任務等),建立項目骨架、組件初始化腳手架工具。windows

安裝:bash

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
  • 修復 ModelAttributegettersetter 駝峯判斷錯誤 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
  • 擴展updateOrInsertupdateOrCreate 支持自增參數 967d6f8

擴展(Extra):

  • Swoftcli 已經支持基本的應用骨架和組件結構建立,以及類文件生成功能
  • SwoftTracker 支持方便開發者調試
相關文章
相關標籤/搜索