Swoft 是一款基於 Swoole 擴展實現的 PHP 微服務協程框架。Swoft 能像 Go 同樣,內置協程網絡服務器及經常使用的協程客戶端且常駐內存,不依賴傳統的 PHP-FPM。有相似 Go 語言的協程操做方式,有相似 Spring Cloud 框架靈活的註解、強大的全局依賴注入容器、完善的服務治理、靈活強大的 AOP、標準的 PSR 規範實現等等。php
Swoft 經過長達三年的積累和方向的探索,把 Swoft 打形成 PHP 界的 Spring Cloud, 它是 PHP 高性能框架和微服務治理的最佳選擇。git
2.0.7
在 2.0.6
上繼續揚帆,已在大量的生產業務中使用,獲得不少用戶的確定和支持。正式版本咱們作了許多改進和優化,擁有了更好的性能。github
經過 Composer 安裝 swoft/session 組件web
composer require swoft/session
Swoft\Http\Session\SessionMiddleware
中間件加入到全局中間件在配置文件 app/bean.php
裏:redis
'httpDispatcher' => [ // Add global http middleware 'middlewares' => [ \Swoft\Http\Session\SessionMiddleware::class, ], ],
默認是基於本地文件驅動,保存在
runtime/sessions
目錄
更在驅動只須要配置對應 handler
類,例如配置 Redis
驅動:數據庫
'sessionHandler' => [ 'class' => RedisHandler::class, // Config redis pool 'redis' => bean('redis.pool') ],
配置於 app/bean.php
:json
/** @see \Swoft\WebSocket\Server\WsMessageDispatcher */ 'wsMsgDispatcher' => [ 'middlewares' => [ \App\WebSocket\Middleware\GlobalWsMiddleware::class ], ],
/** * Class HomeController * * @WsController(middlewares={DemoMiddleware::class}) */ class TestController {}
配置於 app/bean.php
:數組
/** @see \Swoft\Tcp\Server\TcpDispatcher */ 'tcpDispatcher' => [ 'middlewares' => [ \App\Tcp\Middleware\GlobalTcpMiddleware::class ], ],
/** * Class DemoController * * @TcpController(middlewares={DemoMiddleware::class}) */ class DemoController { // .... }
升級提示:
Swoole\WebSocket\Server::push
第四個參數 $finish
在 swoole 4.4.12
後改成了 int 類型。TcpServerEvent::CONNECT
事件參數保持跟receive, close一致。 $fd, $server
互換位置。修復(Fixed):瀏覽器
ArrayHelper::get
傳入key爲 integer 時,報參數錯誤 a44dcad isEnable()
不生效的問題 da8c51e56 uniqid()
方法必須將第二個參數設置爲 true c7f688f response->delCookie()
沒法刪除瀏覽器的cookie數據問題 8eb9241 JSON
格式小問題a3fc6b9 rpc
服務提供者 getList
調用兩次問題fd03e71 redis cluster
不支持 auth
參數7a678f json
類型, 不支持 array
6023a9 multi
操做沒有及時是否鏈接 e5f698 expireAt
, geoRadius
749241 crontab
時間戳檢測誤差問題 eb08a46 更新(Update):服務器
ConsoleEvent::SHOW_HELP_BEFORE
d3f7bc3 newFromArray
和 toArray
方法,方便經過第三方存儲(redis
)時導出信息和恢復鏈接 a8b0b7c 加強(Enhancement):