# 更新日志（v2 版本）

## 2.3.0

> 更新时间：2021.3.16

- 新增：MessageUtil 消息处理工具类
- 新增：TaskManager，封装了 TaskWorker 进程的应用
- 新增：CQObject，使用 `CQ::getCQ()` 可获取对象形式的 CQ 码解析结果
- 新增：`@OnTask` 注解，绑定任务函数
- 新增：RouteManager 路由管理类，可快速添加路由
- 修复：`ZM_DATA` 和 `DataProvider::getDataFolder()` 返回 false 的问题
- 优化：关闭显示停止框架后多余的输出信息

注：本次升级建议升级后合并全局配置文件，有一些新加的内容。

## 2.2.11

> 更新时间：2021.3.13

- 新增：内部 ID 版本号（ZM_VERSION_ID）
- 优化：启动时 log 的等级
- 移除：终端输入命令
- 修复：纯 HTTP 服务器的启动 bug
- 新增：`zm_timer` 的报错处理，防止服务器直接崩掉

## v2.2.10

> 更新时间：2021.3.8

- 新增：用户态 php 编译脚本 `build-runtime.sh`
- 移除：无用的调试信息
- 新增：`--show-php-ver` 启动参数

## v2.2.9

> 更新时间：2021.3.6

- 更新：`reply()` 方法传入数组则变为快速相应的 API 操作
- 修复：在 Worker 进程下调用 `ZMUtil::reload()` 会导致一些奇怪的 bug
- 修复：`reply()` 时会 at 私聊成员的 bug（由 go-cqhttp 导致）

## v2.2.8

> 更新时间：2021.3.2

- 更新：MOTD 显示的方式，更加直观和炫酷

## v2.2.7

> 更新时间：2021.2.27

- 修复：2.2.6 版本下 `reply()` 方法在群里调用会 at 成员的 bug
- 修复：空 `access_token` 的情况下会无法连入的 bug
- 修复：使用 Closure 闭包函数自行编写逻辑的判断返回 false 无法阻断连接的 bug

## v2.2.6

> 更新时间：2021.2.26

- 新增：`uuidgen()` 全局函数，快速生成 uuid
- 修复：MySQL `rawQuery()` 在参数为非数组时会报 Warning 的 bug
- 新增：示例模块的 API 示例：一言查询
- 优化：删减部分无用代码
- 更改：`ctx()->reply()` 方法改为调用隐藏方法：`.handle_quick_operation`
- 修复：`ctx()->finalReply()` 一直以来的 bug（未阻断事件）
- 新增：`access_token` 配置项支持闭包函数自行设计判断方式和逻辑
- 新增：全局函数 `working_dir()`

## v2.2.5

> 更新时间：2021.2.20

- 新增：`saveToJson()` 和 `loadFromJson()` 方法（DataProvider 类）
- 修复：`@OnSave` 注解事件无法工作的 bug
- 调整：自定义计时器创建时的性能调优
- 新增：WorkerCache 方法：`hasKey()`
- 新增：SpinLock 方法：`transaction()`（直接在事务中上锁）
- 新增：CQ 方法：`getAllCQ()`，`_custom()`（获取消息中的所有 CQ 码）
- 修复：CQ 类中的部分 bug

## v2.2.4

> 更新时间：2021.2.7

- 修复：终端交互导致的 ssh 断掉后 CPU 占用过高的问题
- 修复：WorkerCache 在缺少配置文件下工作异常的问题
- 新增：全局函数：`zm_atomic()`

## v2.2.3

> 更新时间：2021.1.30

- 修复：waitMessage() 在 v2.2.2 版本中不可用的 bug
- 修复：access_token 无效的问题

## v2.2.2

> 更新时间：2021.1.29

- 修复：模块文件错误时避免循环报错
- 优化：代码结构
- 修复：在不同进程时调用机器人 API 无法返回且报错的 bug
- **修复：机器人无法连接的问题（2.1.6 ~ 2.2.1 受影响）**

## v2.2.1

> 更新时间：2021.1.29

- 修复：配置文件兼容性问题

## v2.2.0

> 更新时间：2021.1.29

- 新增：`@OnPipeMessageEvent` 注解
- 新增：进程管理器
- 新增：`--daemon` 守护进程化后查看状态以及一系列操作的命令行
- 新增：WorkerCache
- 修复：路由问题
- 修复：`http_header` 配置项不生效的 bug
- 优化：框架内部所有异常全部基于 `ZMException`
- 优化：SingletonTrait 支持扩展

## v2.1.6

> 更新时间：2021.1.18

- 优化：代码结构
- 增加：更多提示语
- 修复：处理空格消息时的报错
- 修复：上下文的bug

## v2.1.5

> 更新时间：2021.1.13

- 优化：终端对 PHP Warning 和 PHP Notice 的报错信息显示，统一格式
- 新增：`ctx()->getNumArg()` 上下文中快速获取数字类型的参数的方法
- 优化：删除不必要的调试信息
- 优化：路由组件全面替换为 `symfony/routing`，兼容性和稳定性 up！

## v2.1.4

> 更新时间：2021.1.3

- 修复：启动时会提示丢失类的 bug
- 优化：HTTP 响应类如果被使用了则一律返回 false
- 优化：PHP Warning 等报错统一样式

## v2.1.3

> 更新时间：2021.1.2

- 修复：注解解析器在某种特殊情况下导致的 bug

## v2.1.2

> 更新时间：2021.1.2

- 修复：引入包模式启动时会导致的满屏报错

## v2.1.1

> 更新时间：2021.1.2

- 修复：自定义加载注解选定 composer.json 文件错误的 bug

## v2.1.0

> 更新时间：2021.1.2

- 新增：`@OnOpenEvent`，`@OnCloseEvent`，`@OnMessageEvent`，`@OnRequestEvent`
- 优化事件分发器，修复一些事件分发过程中的 bug
- 修复 `@CQBefore` 事件的 bug

## v2.0.3

> 更新时间：2020.12.31

- 修复：CQBefore 注解事件在 level 低于 200 时无法调用的 bug
- 修复：CQMetaEvent 注解事件调用时报错的 bug

## v2.0.2

> 更新时间：2020.12.31

- 更新：将 CQ 码调用类更新到与最新 OneBot 标准相兼容的状态

## v2.0.1

> 更新时间：2020.12.23

- 修复：开屏报错文件夹不存在

## v2.0

> 更新时间：2020.12.23

已发布正式版。