diff --git a/composer.json b/composer.json index de4e51f9..ebabf6ef 100644 --- a/composer.json +++ b/composer.json @@ -3,7 +3,7 @@ "description": "High performance QQ robot and web server development framework", "minimum-stability": "stable", "license": "Apache-2.0", - "version": "2.2.5", + "version": "2.2.6", "extra": { "exclude_annotate": [ "src/ZM" @@ -26,19 +26,18 @@ ], "require": { "php": ">=7.2", - "doctrine/annotations": "~1.10", "ext-json": "*", + "ext-posix": "*", + "doctrine/annotations": "~1.10", "psy/psysh": "@stable", "symfony/polyfill-ctype": "^1.20", "symfony/polyfill-mbstring": "^1.20", "symfony/console": "^5.1", + "symfony/routing": "^5.1", "zhamao/connection-manager": "*@dev", "zhamao/console": "^1.0", "zhamao/config": "^1.0", - "zhamao/request": "*@dev", - "symfony/routing": "^5.1", - "symfony/polyfill-php80": "^1.20", - "ext-posix": "*" + "zhamao/request": "*@dev" }, "suggest": { "ext-ctype": "*", @@ -56,4 +55,4 @@ "swoole/ide-helper": "@dev", "phpunit/phpunit": "^9.5" } -} +} \ No newline at end of file diff --git a/docs/component/console.md b/docs/component/console.md index 23606f03..8072a112 100644 --- a/docs/component/console.md +++ b/docs/component/console.md @@ -160,6 +160,8 @@ color green 我是绿色的字 文件位置:`config/motd.txt` +其中,默认的 `Zhamao` 字样的 MOTD 是使用 **figlet** 命令生成的,`figlet "Zhamao"`,你也可以针对自己的机器人名称或品牌进行生成。 + ## 设置输出主题 Console 组件支持为多种不同的终端设置不同的主题,比如有些人喜欢使用白色的终端,但是白色终端下 info 的颜色很浅,看不到,还有人使用不能显示颜色的黑白终端..... diff --git a/docs/guide/installation.md b/docs/guide/installation.md index 741ef328..b1b89e22 100644 --- a/docs/guide/installation.md +++ b/docs/guide/installation.md @@ -82,8 +82,19 @@ cd zhamao-framework-starter ./run-docker.sh # 在正式版炸毛框架 v2 发布后可用,测试版暂不放出 ``` +!!! tip "提示" + + 如果国内 Composer 下载过慢,可以使用阿里云的 Composer 镜像加速。 + ```bash + # 仅对当前的项目使用阿里云加速 + composer config repo.packagist composer https://mirrors.aliyun.com/composer/ + # 对全局的 Composer 使用阿里云加速 + composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ + ``` + ## 启动框架 + 本地环境启动方式: ```bash cd zhamao-framework-starter diff --git a/docs/update/v2.md b/docs/update/v2.md index 12c9901c..29f3f711 100644 --- a/docs/update/v2.md +++ b/docs/update/v2.md @@ -1,8 +1,20 @@ # 更新日志(v2 版本) +## 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 +> 更新时间:2021.2.7 - 修复:终端交互导致的 ssh 断掉后 CPU 占用过高的问题 - 修复:WorkerCache 在缺少配置文件下工作异常的问题 diff --git a/src/ZM/Framework.php b/src/ZM/Framework.php index 81edebbe..b3f846f0 100644 --- a/src/ZM/Framework.php +++ b/src/ZM/Framework.php @@ -223,16 +223,7 @@ class Framework private function parseCliArgs($args) { $coroutine_mode = true; global $terminal_id; - $terminal_id = call_user_func(function () { - try { - $data = random_bytes(16); - } catch (Exception $e) { - return ""; - } - $data[6] = chr(ord($data[6]) & 0x0f | 0x40); - $data[8] = chr(ord($data[8]) & 0x3f | 0x80); - return strtoupper(vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4))); - }); + $terminal_id = uuidgen(); foreach ($args as $x => $y) { switch ($x) { case 'disable-coroutine': diff --git a/src/ZM/global_functions.php b/src/ZM/global_functions.php index 25954b65..3a18d339 100644 --- a/src/ZM/global_functions.php +++ b/src/ZM/global_functions.php @@ -317,4 +317,16 @@ function getAllFdByConnectType(string $type = 'default'): array { function zm_atomic($name) { return \ZM\Store\ZMAtomic::get($name); +} + +function uuidgen($uppercase = false) { + try { + $data = random_bytes(16); + } catch (Exception $e) { + return ""; + } + $data[6] = chr(ord($data[6]) & 0x0f | 0x40); + $data[8] = chr(ord($data[8]) & 0x3f | 0x80); + return $uppercase ? strtoupper(vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4))) : + vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4)); } \ No newline at end of file