Releases: zhamao-robot/zhamao-framework
Releases · zhamao-robot/zhamao-framework
2.8.1 (build 475)
- 修复 WebSocket 连接时报错的 Bug
- 修复
match_args
全局方法对于0
字符串处理的 Bug(#136)
What's Changed
- 临时修复链接关闭容器错误 by @sunxyw in #128
- 修复 #136 的关于
match_arg
的 Bug by @crazywhalecc in #137
Full Changelog: 2.8.0...2.8.1
2.8.0 (build 473)
- 新增 AllBotsProxy、AllGroupsProxy 代理类,支持批量发送机器人动作
- 新增全局函数
implode_when_necessary()
,用于将可能为数组的参数转换为字符串 - 新增依赖注入、容器支持,目前对 Swoole 事件、机器人事件均支持使用依赖注入
- 新增全局容器方法
container()
、resolve()
、app()
,用于获取容器参数等 - 新增相关容器测试
- 新增链式调用全局方法
chain()
- 新增函数执行时间工具全局函数
stopwatch()
- 新增
@CommandArgument
注解,可直接通过注解添加聊天机器人命令参数 - (内部)新增
EventManager::$event_map
,用于补充对事件对象遍历的方式 - 新增
EventMapIterator
类,用于遍历注解事件对象 - 新增
MessageUtil::checkArguments()
方法,用于检查@CommandArgument
注解 - 新增启动命令参数
--audit-mode
,用于单次审计模式 - 新增部分不可执行脚本的防呆退出功能
- 重构全局方法
match_pattern()
,优化性能以及解决部分字符串不能匹配的 Bug - 优化容器支持无名顺序参数的调用
- 优化静态路由,支持 64 以上长度的路由
- 优化
@RequestMapping
注解事件的方法返回值处理,支持数组和字符串(数组自动转为 JSON 格式) - 优化单元测试流程
- 优化上下文对象,在非协程环境下不再会抛出异常或返回 null
- 修改默认 Hello 模块下随机数功能为采用
@CommandArgument
注解模式 - 重构帮助生成器,将帮助生成器重构为
CommandInfoUtil
类 - 修复
CQ::encode()
无法传入int
的强类型解析问题(#113) - (内部)重构 CQ 类
- 修复
EventMapIterator
对 PHP 8.1 的兼容性问题 - 修复 #95 中提到的无输入流时报错的问题
- 修复
ZMServer
中的 typo - 修复 Container 环境继承全局变量的问题
- 修复
server:stop
命令下部分情况报错的问题
Full Changelog: 2.7.6...2.8.0
2.7.6 (build 460)
- 重构 phpunit-swoole,使其可以正常使用
- 新增
--private-mode
参数,用于隐藏启动前的 MOTD 及敏感信息 - 修复 Composer extra 配置项
zm.exclude-annotation-path
不能正常工作的 Bug - 优化注解事件加载器,防止 Master 进程中添加的事件在 Worker 中被覆盖的问题
- 修复
DataProvider::isRelativePath()
方法判断有误的 Bug - 新增退出框架时支持以非 0 exit code 退出的功能
- 优化
ZMUtil::getClassesPsr4()
方法,排除不含类的文件 - 优化
module:xxx
类命令的有关实现代码 - 优化代码到 phpstan-level-4
What's Changed
- 添加 PHPUnit 单元测试框架 by @sunxyw in #83
- 重构旧有测试 Part One by @sunxyw in #84
- refactor git hooks config by @sunxyw in #85
- PHPStan 升级到 level 2 by @crazywhalecc in #86
- API 文档重新生成并加入Workflow by @crazywhalecc in #87
- PHPStan 优化到 Level 1 by @crazywhalecc in #88
- 更新 README Badges 及优化工作流触发路径 by @sunxyw in #89
- PHPStan Level 2 by @crazywhalecc in #90
- PHPStan Level 4 by @crazywhalecc in #91
- use https asset in vuepress component by @sunxyw in #94
Full Changelog: 2.7.5...2.7.6
2.7.5 (build 455)
2.7.4 (build 454)
- 修复部分命令下无法杀掉进程的 Bug
- 新增
@Cron
注解 - 修复全局函数
match_pattern
无法正常工作的 Bug
相关拉取请求
- 添加构建工作流以自增构建编号 by @sunxyw in #75
- 新增 Cron 注解及修复部分 Bug by @crazywhalecc in #76
- 添加中间件参数文档 by @sunxyw in #78
Full Changelog: 2.7.3...2.7.4
2.7.3 (build 453)
在 PHP 7.4 中,可能会出现
PHP Warning: mb_strpos(): Empty delimiter
错误,导致无法正常处理消息。您可以暂时回退至2.7.2
版本或更新到2.7.4
及以后的版本,或者手动修复。
手动修复方法如下:
将vendor/zhamao/framework/src/ZM/global_functions.php
文件中的
mb_strpos($pattern, '') === 0
替换成empty($pattern)
mb_strpos($subject, '') === 0
替换成empty($subject)
回退版本方法如下:
composer update zhamao/framework 2.7.2
更新方法如下:
composer update
- 更新文档框架为 VuePress
- 一键部署静态 PHP 脚本新增自定义 PHP 版本功能
ZM_DOWN_PHP_VERSION
- 新增
MessageUtil::generateCommandHelp()
自动根据注解生成帮助列表功能 - 修复 OnTick、SwooleHandler、OnSetup 不能使用 Attribute 模式的 Bug
- MiddlewareInterface 新增 property
$middleware
,用于 IDE 识别中间件内查询参数 - 优化
global_functions
部分不符合规定的命名 - 废弃
getAllFdByConnectType
、getClassPath
、explodeMsg
、connectIsQQ
、connectIsDefault
、connectIs
、getAnnotations
、matchArgs
、matchPattern
、onebot_target_id_name
、zm_go
、zm_data_hash
全局函数
相关拉取请求
- 增加命令帮助生成器 by @sunxyw in #65
- 重构全局函数,统一函数命名,并补全注释 by @sunxyw in #67
- 将文档重新部署和重构为 VuePress by @crazywhalecc in #68
- 修复命令生成器无法正确解析命令别名的问题 by @sunxyw in #69
- 修饰部分文档 by @sunxyw in #70
- 修改集成测试配置以忽略文档变更 by @sunxyw in #73
- 增加命令帮助生成器文档 by @sunxyw in #71
- Fix OnSetup Attribute execution bug (release 2.7.3) by @crazywhalecc in #74
Full Changelog: 2.7.2...2.7.3
2.7.2 (build 449)
- 新增 Composer 模块加载和分发模式
Full Changelog: 2.7.1...2.7.2
2.7.1 (build 448)
- 加快 build 命令的执行速度,取消进度条和提升性能
Full Changelog: 2.7.0...2.7.1
2.7.0 (build 447)
- 优化分离 WorkerManager 与 ProcessManager 的职责
- 新增 Ctrl+C 一次无法停止框架时多次 Ctrl+C 后可强行杀掉所有进程的功能
./zhamao server:stop
新增参数--force
,使用SIGKILL
强行杀掉所有进程- 新增 AnnotationParser 对
autoload-dev
项中的psr-4
默认检索条件 - 新增框架启动状态检测功能,如果已经启动了同样目录的框架,则会报错
- 新增“强制启用轮询模式启动热更新”功能(参数
--polling-watch
) - 修复与 PHP 8.1 的兼容性
- 对 DaemonCommand 进行优化,与 ServerCommand 效果相同
- 修复
autoload
.psr-4
不存在时报错的 Bug - 新增框架停止时 Worker 退出回显状态码
- 新增 inotify 判断模式,如果使用
--watch
检测到没有安装 inotify,则自动使用轮询模式 - 新增 PHPStan 和 PHP CS Fixer 并优化全局代码
- 修复
ctx()
可能会返回 null 的 Bug - 修复 Response 类在 PHP 8.1 环境下的报错
- 新增 PHP 8 Attribute 与注解同时支持的特性
- 新增方法宏(Macroable)
- 修复打包模块时命名空间与实际不一致的 Bug
- 修复打包模块后
files
的 autoload 项不能被解压和引入的 Bug - 修复注释空格的样式
- 更改
extra
.exclude_annotate
为zm
.exclude-annotation-path
项 - 新增配置项
runtime
.annotation_reader_ignore
:支持注解解析器忽略注解的自定义 - 新增
./zhamao server
下的--no-state-check
参数,关闭“启动框架前的运行状态检查”功能
Full Changelog: 2.6.6...2.7.0