mirror of
https://github.com/zhamao-robot/zhamao-framework.git
synced 2026-03-18 05:04:51 +08:00
40 lines
2.4 KiB
Markdown
40 lines
2.4 KiB
Markdown
# 从炸毛框架 V1 升级
|
||
|
||
> 这里只写明可能在升级过程中会影响原先代码执行的部分,不包含新增的特性等。
|
||
|
||
### 需要改变命名空间的类
|
||
|
||
- `Framework\Console` -> `ZM\Console\Console`
|
||
- `Swlib\Util\SingletonTrait` -> `ZM\Utils\SingletonTrait`
|
||
- `ZM\Annotation\Http\Before` -> `ZM\Annotation\Http\HandleBefore`
|
||
- `ZM\Annotation\Http\After` -> `ZM\Annotation\Http\HandleAfter`
|
||
- `@SwooleEventAt` -> `@OnSwooleEvent`
|
||
- 删除 `@SwooleEventAfter`
|
||
- 删除 `ModBase`
|
||
- `@HandleEvent` -> `@SwooleHandler`
|
||
- `ZM\Utils\ZMRobot` -> `\ZM\API\ZMRobot`
|
||
|
||
### 方法名称变更
|
||
|
||
- `ZM\Console::stackTrace()` -> `ZM\Console::trace()`
|
||
|
||
### 注解的变化
|
||
|
||
`@OnSwooleEvent`(原 `@SwooleEventAt`)中,`rule` 参数不再是自定义语法的东西了(比如之前的 `connectType:qq` 之类的鸡肋语法),直接是可执行的 PHP 代码,比如 `3 == 4`,`connectIsQQ()` 之类的。
|
||
|
||
去除 `@CQAPISend`,因为目前没什么意义。
|
||
|
||
`@CQCommand` 中,`regexMatch` 变成 `pattern`,`fullMatch` 变成 `regex`,消除歧义(第一个是 * 号匹配符进行匹配的,第二个是标准的正则表达式匹配)。同时新增 `start_with`,`end_with`,`keyword` 平行选项。
|
||
|
||
`@OnTick` 注解新增第二个参数 `worker_id`,其中默认是 0,代表只在 `#0` 号工作进程上运行计时器。
|
||
|
||
### 中间件编写的改变
|
||
|
||
原先的 Middleware 是需要含有 `getName()` 方法才合法,现在不需要了,但是对 `@MiddlewareClass` 注解需要增加参数,也就是说原先 `getName()` 返回的名称现在需要写到 `@MiddlewareClass("xxx")` 这样的形式。
|
||
|
||
### ZMBuf 的变化
|
||
|
||
由于 2.0 框架使用了多进程模型,所以不能使用原先适用于单进程下全局变量的方式(ZMBuf)进行存取变量,所以 ZMBuf 下的所有方法都需要更改,其中 `get, set` 等对缓存操作的模型请根据 2.0 的文档变更使用 `Redis` 或内置的多进程共享内存可用的 `LightCache` 轻量缓存。
|
||
|
||
而获取全局配置文件,如 `global.php` 文件,也发生了变化,新框架引入了 `ZMConfig` 对象,可以快速地区分各类环境变量从而读取不同的配置文件。比如我们获取原先的 global 配置文件中的一项:`ZMBuf::globals("port")`,在 2.0 中需要使用 `ZMConfig::get("global", "port")` 方式。以此类推,`ZMBuf::config("xxx")` 也直接变为 `ZMConfig::get("xxx")` 了。
|