版本更新
优质
小牛编辑
125浏览
2023-12-01
v2.0.9[2020-4-12]
修复(Fixed):
- 修复 MySQL 8.0 生成实体主键位置错误 e437d36
更新(Update):
- 连接池关闭连接, 如果连接已经断开, 异常将会被忽略 7aac80da
增强(Enhancement):
v2.0.8[2020-1-18]
修复(Fixed):
- 修复 ws server 的 message response.finish 兼容
swoole 4.4.12
问题 d724a949 - 修复 console 组件中拥有短选项的选项获取值不同步问题 ac41eca
- 修复 部分字符串操作不兼容 php 7.4 的问题 b4d0e90
- 修复 输入未知命令时,显示http server 命令帮助信息有误 684807e
- 修复 去除 process 组件中无效的调试语句 2bc84aa
- 打包为phar后不能正确的加载同目录下的
.env
文件问题 8046c15
更新(Update):
- 调整 路由没找到时抛出的异常将会携带错误 code 7e06afa
- 新增 验证器严格模式 0a6cd60
- 新增 验证器 @Required 规则 b1a0758
- 新增 验证器支持 Path 路径参数验证 5315274
- 新增 验证器 i18n 文案支持 bcc58a4
增强(Enhancement):
v2.0.7(2019-11-18)
升级提示:
Swoole\WebSocket\Server::push
第四个参数4.4.12
后改为了 int 类型。
修复(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):
- 现在 tcp 请求支持添加全局或对应的方法中间件,流程和使用跟http中间件类似。仅当使用系统调度时有用 6b593877
- 现在 websocket message 请求支持添加全局或对应的方法中间件,流程和使用跟http中间件类似。仅当使用系统调度时有用 9739815
- 事件管理允许设置
destroyAfterFire
在每次事件调度后清理事件中携带的数据 50bf43d3 - 数据库错误异常新增
code
返回fd306f4 - 协程文件操作
writeFile
新增写失败异常08c4244 - RPC 新增参数验证8646fc5
v2.0.6(2019-09-21)
升级提示:
- 通过参数注入接收websocket原始数据时,现在需要加上类型
string
。例如:public function echo(string $data)
- ws server 中使用message调度时,没有过滤空数据,导致多发出一个响应。避免方法swoft-cloud/swoft#1002
修复(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 - 修复
ModelAttribute
的getter
和setter
驼峰判断错误2e2f0f1 - 修复
Aggregate
聚合, 返回字符串强行转换int
错误7aa98a6 - 修复模型
updateCounters
方法更新之后没有同步实体数据967d6f8
更新(Update):
- 调整 ws server在worker 退出时自动关闭连接,添加开关配置,可以选择是否开启。3a8890c
- ws server 新增事件:
MESSAGE_PUSH`
OPEN_BEFOREMESSAGE_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 - 扩展
updateOrInsert
和updateOrCreate
支持自增参数967d6f8
扩展(Extra):
swoftcli
支持类生成,创建新的应用、组件结构。使用请查看文档swoftTracker
支持方便开发者调试
v2.0.5-beta(2019-08-06)
升级提示:
- 请使用
context()
代替Context::mustGet()
- 这个版本开始验证器默认关闭,需要开发者开启 validator setting
修复(Fixed):
- 修复提前中断请求逻辑可能导致无法正确的格式化对应的Content-Type f031398
- 修复使用sgo创建子协程,在结束时没有清理与顶级协程的映射关系 de11ae5b
- 修复 Xml 格式解析方法 24d0038
- 修复类代理 Unique 字符串问题 444ddeb
- 修复
context()->get()
存在问题以及废弃Context::mustGet()
方法 6acc1b5 - 修复接口注入,类名访问错误 2d9a31f
- 修复 模型使用
paginate
方法, 结果集没有映射字段3027287 - 修复 websocket server 里,当有多个worker,主动关闭非当前worker连接时报错 7666969
更新(Update):
- 默认的 worker num 设置通过
swoole_cpu_num
函数获取 553f6500 - 验证器调整成,默认非必须,用户自己开启 e5b258d
- 不再抛出swoft内部的
ContainerException
到用户使用层 1e74893 - console output 新增
confirm`
select` 等交互方法 0181138a
增强(Enhancement):
- console 命令选项设置
CommandOption
,现在允许选项描述为多行信息 e5914983 - websocket server 的全部消息发送方法,支持传入
opcode
参数 dc164ffe9 - websocket 模块允许设置当前模块的默认
opcode
,用于自动处理返回数据设置opcode
9e3e9672 - 增强 websocket 相关类,现在消息处理方法允许注入更多数据对象类型
Request`
Response` 3d6c60b4 - 当worker退出时,websocket server 会自动关闭所有连接 5ea10ecc
- Add Timer 定时器封装 eb92ee6
- Add Coroutine 方法封装 d8c2b88
扩展(Extra):
- swoft/crontab 秒级别定时任务
- swoft/whoops 对
filp/whoops
在swoft中使用的简单封装,用于渲染并显示更加利于阅读的错误信息
v2.0.4-beta(2019-07-21)
升级注意:
- 请去掉
bin/swoft
里的Runtime::enanbleCoroutine()
设置 - 请确保 swoole 的
swoole.use_shortname
的值为On
- 从这个版本开始要求 swoole
4.4.1+
增强(Enhancement):
Swoft\Http\Message\Request
新增getHeaderLines()
(74a2a91)- Aop 新增
getArgsMap()
和getClassName()
方法 (c47e785) - 新增
srun()
函数,用于协程调度 (3c4a6a4) - 优化 server 事件(
onStart
/onWorkStart
/onWorkStop
/onShutdown
),事件自带支持协程 (a8d5a8d) - 新增投递同步阻塞任务(ec938e5)
- 新增 Redis
call
方法, 用于使用同一连接操作(92456987) - 兼容 Swoole 4.4.x
修复(Fixed):
- 修复 迁移类名太长导致记录类名不全(58314b8)
- 修复 实体查询之后使用
Setter
更新字段值之后update
更新无效(caadf0e) - 修复 stop 后删除pid文件的结果返回错误,导致restart失败 (2be450bf11)
- 修复 i18n 设置默认语言不生效的问题 (b401a504e)
- 修复 ws server在有多个worker时,无法主动关闭其他worker的连接(271b6398)
- 修复 http server接收xml请求时,content type 不能正确匹配(2ff9a4e61)
- 修复 使用 Database,
json
操作无效(92456987) - 修复 limiter 限速器 Redis 加前缀无法使用问题(7b54d4c)
更新(Update):
- 更新 ws server 可以通过配置
disabledModules
来禁用 ws 模块(fa31111d)
扩展(Extra):
- 在官网增加案例展示,欢迎大家提交案例到官方案例仓库 swoft-cloud/swoft-case
- 在GitHub上对文档的修改,将会自动更新到官网文档,不再需要手动刷新
新增(New)
v2.0.3-beta(2019-07-08)
不兼容(Incompatible)
- 移除
request->json()
方法(c9e8f04) 替代方法getParserdBody()
- 应用日志和控制台日志
levels
由数组配置改成,字符串配置,详细见文档
新增(Enhancement):
- 新增接口依赖注入(6169f84)
- 新增
getFile
方法获取文件上传保存之后的信息(fe7e3a6) - 新增
restart()
服务新增重启方法(2ffec37) - 新增调用 1.x RPC 服务支持(30d73c3)
- 新增 AOP 类名匹配支持正则表达式(bc5e479)
- 新增 RPC Server /Http Server 中间件命名空间
use
错误提示(b1cec04) - 新增 验证器排除属性字段
unfields
(b1bf44f) - 新增 自动写入时间戳(dc58011)
- 新增 模型动作事件(dc58011)
- 新增 数据库迁移(26bb464)
- 新增 实体自动与 json 和数组互转(dc58011)
- 新增 模型批量更新方法
batchUpdateByIds
(dc58011)
修复(Fixed):
- 修复 cookies 设置时的一些问题,增加一些 withCookie 相关方法(b05afbb01)
- 修复 在console使用协程方式运行命令时,没有捕获处理错误(8a5418bf)
- 修复 websocket server 重启命令没有先停止旧server问题(db2d935)
- 修复任务返回值为
null
问题(a69347c) - 修复 RPC Server 只有类中间件无法使用问题()204bc7f
- 修复 RPC Server 返回值为
null
问题(4d091be) - 修复 Logger 和 CLog 日志等级无法覆盖和无效问题(8eb8aba)
- 修复 模型里面的属性不支持自定义表达式(dc58011)
更新(Update):
- 验证器优化,支持自定义验证规则(d959a4f)
- 重命名错误处理管理类
ErrorHanlders
为ErrorManager
(f3a8f04b) - console组件的异常处理改为由error组件提供的统一处理风格 (4f47204)
- console组件允许设置禁用命令组(c5a0269)
- 在默认的错误处理中,允许设置错误捕获级别。默认级别是
E_ALL | E_STRICT
(afff9029) - 优化 启动ws server时同时启用了http处理功能,信息面板添加提示(83a81170)
- 优化 启动ws server 并同时添加rpc server启动,信息面板没有显示 rpc server信息(3d1d0d848)
扩展(Extra):
- 文档添加支持通过google进行搜索
- 新增 apollo 组件
- 新增 consul 组件
- 新增 breaker 组件
- 新增 limter 组件
- 新增 tcp-server 组件
v2.0.2-beta(2019-06-21)
新增(Enhancement):
- 新增
$request->parsedQuery()
方法 (ab45089) - 新增 Bean 属性注入基础数据类型(string/int/bool/float/array),自动根据注释类型转换。(e3d4085)
- 新增
db()
, 使 Model/Query/DB 支持切库(f3b12c9) - 新增
DbSelectorInterface
用于根据业务自动切库(b36ca03) - 新增 Http server 增加Cookies响应支持 (1a024bf)
- 新增
devtool
组件的实体生成(14b4d39c) - 新增 允许注册 swoole 的 pipeMessage, packet 事件[afec0e3f]
- 新增 添加更多启动时的相关事件[8aaa38c4]
- 新增
validate()
不依赖注解验证方式(cc35560) - 新增 RPC 调用返回错误
RpcResponseException
异常(baa482f) - 新增 允许注册 swoole 的 pipeMessage, packet 事件(afec0e3f)
- 新增 添加更多启动时的相关事件(8aaa38c4)
修复(Fixed):
- 修复
paginate
无法指定查询字段(308d330) - 修复 实体
join
操作,显示不出关联表数据 (446a3a2) - 修复 实体属性名
attributes
等与系统定义属性冲突问题 (1a9d25b) - 修复 AOP 切面重复执行问题 (54e00ac)
- 修复 Http 服务全局异常
contentType
失效问题(e704116) - 修复 Http server在启用https 时,type 检查无法通过 (3e9b431)
- 修复 Http server通过data响应html时可能出现错误(e5513df)
- 修复 控制器 table 数据显示 (4d27718)
- 修复 devtool 生成的 phpstorm meta文件key重复(1838552)
- 修复 ws-server 参数路由匹配失败(4d3392e6)
- 修复 Http 服务 content-type 多值解析错误问题(1657979)
- 修复 Co::multi 抛出异常调用错误问题(d0ff0f7)
- 修复 body 字符串无解析调用错误问题(32abf60)
- 修复 通过
setter
操作实体toArray
失效问题(9c0f9505) - 现在停止server(包含Ctrl+C)时总是会删除pid文件,修复没有删除pid文件导致docker重启失败问题(6a96b2c)
- 修复 通过
@Inject
注入Redis
连接池没有释放以及连接池全部空闲判断问题(feac3700) - 修复 数据库开启事物多连接池操作错误(3f80474)
- 修复
init()
方法中使用config()
函数问题(fe9b92b) - 修复
getParsedQuery()
方法初始化问题(8e05836) - 修复 一些bean会出现重复初始化(例如
config
)问题 (f8ef5a9a) - 修复 Autoloader 文件与其它composer包文件冲突问题 (ba19af363)
更新(Update):
- 修改模型方法
insert,insertGetId,updateOrInsert
只会插入定义了@Column
字段(9c0f9505) - 启动swoft时加入冲突扩展相关的运行环境检查(7fa7188f)
- 调整
count,sum,avg,max,min
返回值类型(c9b5e17a) - Http server 路由匹配顺序优化(d8fb588)
- 完善 RPC Client 调用错误信息提示(a1e56eb)
- 调整 Redis
zAdd
成员和分数的位置⚠️不向下兼容(1a3275b3) - 调整 如果没有添加验证注解,会跳过验证解析相关流程(582c806cc)
- 去除swoole中已经废弃的 buffer full/empty 事件相关代码 (873a97bed)
- 优化 Http server 验证器流程(0e73a8c)
扩展(Extra):
swoft/view
添加通过@View
渲染视图支持
v2.0.1-beta (2019-05-29)
新增(Enhancement):
- 新增验证器不存在错误提示(5ba8682)
- 新增 AOP 代理类名称标识
_PROXY_
(5ba8682) - 新增实体字段值类型转错误异常提示(ab3cfea)
- 新增
BeanFactory::getBeans()
根据类名查询使用实例(999c10f) - 新增 Model
getAttributeValue
获取字段值方法(642d791e) - 新增 Get 方式参数验证(6452a37)
- 新增
Redis
通过Inject
方式注入使用(fc0a88e) - 新增 RRC 服务全局异常处理(1653b24)
修复(Fixed):
- 修复 CLog 日志调用栈错误(868102f)
- 修复 Co::multi 调用失败错误数据格式(5ba8682)
- 修复 Function.php 重复加载(b063dd1)
- 修复 Logger 日志调用栈错误(ab3cfea)
- 修复 worker 进程退出未释放(close)数据库、缓存、RPC 连接池(5b1baa5)
- 修复 开发者自定义 content-type 失效问题(22cf706)
- 修复 request/session 级别销毁失效问题(e0d1493)
- 修复 bean 名称包含
.
点号失效问题(dc37c92) - 修复连接池
maxIdleTime
参数无效问题(0e05591) - 修复 文件上传 (10bc7fa)
- 修复 默认输出编码为UTF8 (755c8cf)
- 优化 Redis 配置类型转换(533b592)
- 打包为phar运行时路径错误(533b592)
Swoft-cli
Devtool
- 新 bean 方法代码智能提示(
bean()`/
BeanFactory::getBean()/
Swoft::getBean()`)(b63fe07)
v2.0.0-beta (2019-05-21)
Swoft 2 重构归来,基于 Swoole hook 方式,底层完全重构,相比之前更佳简单、稳定、易上手。
功能特性:
- 内置高性能网络服务器(Http/Websocket)
- 灵活的组件化
- 灵活的注解功能
- 多样化命令终端(Console)
- 强大的切面编程(AOP)
- 完善的容器管理、依赖注入 (DI)
- 灵活的事件机制
- 基于 PSR-7 的 HTTP 消息实现
- 基于 PSR-14 的事件管理器
- 基于 PSR-15 的中间件
- 可扩展的高性能 RPC
- 国际化(i18n)支持
- 简单高效的参数验证器
- 高性能连接池(Mysql/Redis/RPC),自带断线重连
- 数据库高度兼容 laravel
- 缓存 Redis 高度兼容 Laravel
- 高效任务处理
- 灵活的异常处理
- 强大的日志系统