Swoft 2.0.7 如期而至
什么是 Swoft ?
Swoft 是一款基于 Swoole 扩展实现的 PHP 微服务协程框架。Swoft 能像 Go 一样,内置协程网络服务器及常用的协程客户端且常驻内存,不依赖传统的 PHP-FPM。有类似 Go 语言的协程操作方式,有类似 Spring Cloud 框架灵活的注解、强大的全局依赖注入容器、完善的服务治理、灵活强大的 AOP、标准的 PSR 规范实现等等。
Swoft 通过长达三年的积累和方向的探索,把 Swoft 打造成 PHP 界的 Spring Cloud, 它是 PHP 高性能框架和微服务治理的最佳选择。
Swoft v2.0.7
2.0.7
在 2.0.6
上继续扬帆,已在大量的生产业务中使用,得到很多用户的肯定和支持。正式版本我们做了许多改进和优化,拥有了更好的性能。
- 新增 Http Session 功能组件,提供http会话管理, 支持多种存储驱动
- 增强 TCP server 请求支持添加全局或对应的方法中间件
- 增强 Websocket server 消息请求支持添加全局或对应的方法中间件
Http Session
通过 Composer 安装 swoft/session 组件
- 在项目 composer.json 所在目录执行
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') ],
Websocket消息中间件
- 全局中间件
配置于 app/bean.php
:
/** @see \Swoft\WebSocket\Server\WsMessageDispatcher */ 'wsMsgDispatcher' => [ 'middlewares' => [ \App\WebSocket\Middleware\GlobalWsMiddleware::class ], ],
- 作用于控制器的
/** * Class HomeController * * @WsController(middlewares={DemoMiddleware::class}) */ class TestController {}
TCP 请求中间件
- 全局中间件
配置于 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
在 swoole4.4.12
后改为了 int 类型。- tcp server 的
TcpServerEvent::CONNECT
事件参数保持跟receive, close一致。$fd, $server
互换位置。
修复(Fixed):
- 修复 config 注入时,没有找到值也会使用对应类型的默认值覆盖属性,导致属性默认值被覆盖 d84d50a7
- 修复 ws server 中使用message调度时,没有过滤空数据,导致多发出一个响应。避免方法swoft-cloud/swoft#1002 d84d50a7
- 修复 tcp server 中使用message调度时,没有过滤空数据,导致多发出一个响应。07a01ba1
- 修复 独立使用console组件时缺少 swoft/stdlib 库依赖 c569c81a
- 修复
ArrayHelper::get
传入key为 integer 时,报参数错误 a44dcad - 修复 console 渲染使用table,有int值时,计算宽度报类型错误 74a835ab
- 修复 error 组件中用户无法自定义设置默认的错误处理级别 4c78aeb
- 修复 启用和禁用 组件设置
isEnable()
不生效的问题 da8c51e56 - 修复 在 cygwin 环境使用
uniqid()
方法必须将第二个参数设置为 true c7f688f - 修复 在 cygwin 环境不能够设置进程title而导致报错 c466f6a
- 修复 使用 http
response->delCookie()
无法删除浏览器的cookie数据问题 8eb9241 - 修复 ws server消息调度时,接收到的ext数据不一定是数组导致报错 ff45b35
- 修复 日志文件按时间拆分问题c195413
- 修复 日志
JSON
格式小问题a3fc6b9 - 修复
rpc
服务提供者getList
调用两次问题fd03e71 - 修复
redis cluster
不支持auth
参数7a678f - 修复 模型查询
json
类型, 不支持array
6023a9 - 修复 redis
multi
操作没有及时是否连接 e5f698 - 修复 redis 不支持
expireAt
,geoRadius
749241 - 修复
crontab
时间戳检测偏差问题 eb08a46
更新(Update):
- 更新 console 在渲染 help信息之前也会发出事件
ConsoleEvent::SHOW_HELP_BEFORE
d3f7bc3 - 简化和统一 http, ws, tcp, rpc server管理命令逻辑 f202c826
- 更新 ws 和 tcp Connection类添加
newFromArray
和toArray
方法,方便通过第三方存储(redis
)时导出信息和恢复连接 a8b0b7c - 优化 server 添加统一的 swoole pipe message 事件处理,在 ws, tcp 中使用swoft事件来处理进程间消息 1c51a8c
增强(Enhancement):

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
使用OAS Validator帮助你规范OpenAPI Spec文档
当前主流的开发RESTful API的做法有两种:Code First和Contract First。Code First指先写代码,然后生成Contract,而Contract First则是先写Contract再写代码实现。 两种做法各有利弊,Code First可以让开发人员先写接口实现,然后利用工具反向生成Contract,优点是快速开发,并能保证接口实现与Contract保证一致,缺点是Contract太过易变容易导致下游应用故障。Contract First则可以让Contract的变动受控,保证下游应用的稳定性,缺点是需要人工来保证接口实现与Contact的一致性,具有一定难度。 对于如何规范管理Contract,新开普软件研究院开源的OAS Validator提供了一些思路,下面简单介绍。 合规性校验 OAS Validator支持对使用 OpenAPI V3 编写的Contract文档做合规性校验(也可称之为风格校验)。 在一个微服务架构的系统中,提供RESTful API的组件可能会有很多个,并且由不同开发人员/团队开发,那么在使用这些接口的时候有一个很自然的需求就...
-
下一篇
smart-doc 1.7.7 发布,Java 零注解文档生成工具
smart-doc 是一个 java restful api 文档生成工具,smart-doc 颠覆了传统类似 swagger 这种大量采用注解侵入来生成文档的实现方法。 smart-doc 完全基于接口源码分析来生成接口文档,完全做到零注解侵入,你只需要按照java标准注释的写,smart-doc 就能帮你生成一个简易明了的 Markdown、Html、AsciiDoc 文档。 如果你已经厌倦了 swagger 等文档工具的无数注解和强侵入污染,那请拥抱 smart-doc吧!喜欢 smart-doc 的用户也不要忘记给项目 star,你们的支持是 smart-doc 持续推进的动力。 功能特性 零注解、零学习成本、只需要写标准java注释。 基于源代码接口定义自动推导,强大的返回结构推导。 支持 Spring MVC、Spring Boot、Spring Boot Web Flux(controller 书写方式)。 支持 Callable、Future、CompletableFuture 等异步接口返回的推导。 支持 JavaBean 上的 JSR303 参数校验规范。 对 js...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- MySQL数据库在高并发下的优化方案
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8编译安装MySQL8.0.19