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
驅動:json
'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 時,報參數錯誤 a44dcadisEnable()
不生效的問題 da8c51e56uniqid()
方法必須將第二個參數設置爲 true c7f688fresponse->delCookie()
沒法刪除瀏覽器的cookie數據問題 8eb9241JSON
格式小問題a3fc6b9rpc
服務提供者 getList
調用兩次問題fd03e71redis cluster
不支持 auth
參數7a678fjson
類型, 不支持 array
6023a9multi
操做沒有及時是否鏈接 e5f698expireAt
, geoRadius
749241crontab
時間戳檢測誤差問題 eb08a46更新(Update):
ConsoleEvent::SHOW_HELP_BEFORE
d3f7bc3newFromArray
和 toArray
方法,方便經過第三方存儲(redis
)時導出信息和恢復鏈接 a8b0b7c加強(Enhancement):