Swoft 是一款基於 Swoole 擴展實現的 PHP 微服務協程框架。Swoft 能像 Go 一樣,內置協程網路伺服器及常用的協程客戶端且常駐內存,不依賴傳統的 PHP-FPM。有類似 Go 語言的協程操作方式,有類似 Spring Cloud 框架靈活的註解、強大的全局依賴注入容器、完善的服務治理、靈活強大的 AOP、標準的 PSR 規範實現等等。
Swoft 通過長達三年的積累和方向的探索,把 Swoft 打造成 PHP 界的 Spring Cloud, 它是 PHP 高性能框架和微服務治理的最佳選擇。
2.0.7
在 2.0.6
上繼續揚帆,已在大量的生產業務中使用,得到很多用戶的肯定和支持。正式版本我們做了許多改進和優化,擁有了更好的性能。
通過 Composer 安裝 swoft/session 組件
composer require swoft/session
Swoft\Http\Session\SessionMiddleware
中間件加入到全局中間件在配置文件 app/bean.php
里:
'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
:
/** @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):
[admin
]