Compare commits

...

12 Commits
3.2.5 ... 3.2.6

Author SHA1 Message Date
crazywhalecc
1183766701 Fix phpstan 2025-03-17 14:31:51 +08:00
crazywhalecc
a39e96acd2 Update version number 2025-03-17 14:15:43 +08:00
crazywhalecc
9cd3f9accf Merge remote-tracking branch 'origin/main' 2025-03-17 14:14:12 +08:00
crazywhalecc
a5b9260d14 Fix Middleware args type hint 2025-03-17 14:13:54 +08:00
crazywhalecc
5e3397e7ae increment build number (build 726) 2025-03-10 07:46:04 +00:00
crazywhalecc
d5e18a7229 update api docs 2025-03-10 07:46:03 +00:00
crazywhalecc
228762ce7b Update workflow lowest php version 2025-03-10 15:45:28 +08:00
crazywhalecc
3a05a0e6ba Update to PHP 8.4 compatible 2025-03-10 15:45:28 +08:00
crazywhalecc
2da5ef3db1 Update to PHP 8.4 compatible 2025-03-10 15:45:28 +08:00
crazywhalecc
4c37294275 Fix built-in php and composer install plugin error 2025-03-10 15:44:54 +08:00
Jerry Ma
f16dadf29e Update README.md 2025-02-19 11:04:28 +08:00
crazywhalecc
c238bb25d2 update changelog 2024-10-02 12:56:27 +00:00
16 changed files with 43 additions and 42 deletions

View File

@@ -19,7 +19,7 @@ jobs:
- name: Setup PHP
uses: sunxyw/workflows/setup-environment@main
with:
php-version: 8.0
php-version: 8.1
php-extensions: swoole, posix, json
operating-system: ubuntu-latest
use-cache: true

View File

@@ -34,7 +34,7 @@ jobs:
- name: Setup PHP
uses: sunxyw/workflows/setup-environment@main
with:
php-version: 8.0
php-version: 8.1
php-extensions: swoole, posix, json
operating-system: ubuntu-latest
use-cache: true

View File

@@ -34,7 +34,7 @@ jobs:
- name: Setup PHP
uses: sunxyw/workflows/setup-environment@main
with:
php-version: 8.0
php-version: 8.1
php-extensions: swoole, posix, json
operating-system: ubuntu-latest
use-cache: true

View File

@@ -33,7 +33,7 @@ jobs:
strategy:
matrix:
operating-system: [ ubuntu-latest, windows-latest, macos-latest ]
php-version: [ 8.0, 8.1, 8.2 ]
php-version: [ 8.1, 8.2, 8.3, 8.4 ]
name: PHP ${{ matrix.php-version }} Test (${{ matrix.operating-system }})
runs-on: ${{ matrix.operating-system }}
timeout-minutes: 10

View File

@@ -68,6 +68,8 @@ return (new PhpCsFixer\Config())
'php_unit_test_class_requires_covers' => false,
'fully_qualified_strict_types' => false,
'new_with_parentheses' => false,
'operator_linebreak' => false,
'php_unit_data_provider_method_order' => false,
])
->setFinder(
PhpCsFixer\Finder::create()

View File

@@ -125,7 +125,7 @@ bash <(curl -fsSL https://zhamao.xin/v3.sh)
框架和 SDK 是 炸毛机器人 项目的核心框架开源部分。炸毛机器人是作者写的一个高性能机器人,曾获全国计算机设计大赛一等奖。
作者的炸毛机器人已从2018年初起稳定运行了**年**,并且持续迭代。
作者的炸毛机器人已从2018年初起稳定运行了**年**,并且持续迭代。
可以提交 [Issue](https://github.com/zhamao-robot/zhamao-framework/issues/new/choose) 或 [加群(670821194)](https://jq.qq.com/?_wv=1027&k=YkNI3AIr) 进行疑难解答。

View File

@@ -39,7 +39,7 @@
"jangregor/phpstan-prophecy": "^1.0",
"jetbrains/phpstorm-attributes": "^1.0",
"mikey179/vfsstream": "^1.6",
"phpspec/prophecy-phpunit": "^2.0",
"phpspec/prophecy-phpunit": "^2.3",
"phpstan/extension-installer": "^1.1",
"phpstan/phpstan": "^1.1",
"phpstan/phpstan-deprecation-rules": "^1.0",
@@ -99,7 +99,7 @@
},
"scripts": {
"analyse": "phpstan analyse --memory-limit 300M",
"cs-fix": "PHP_CS_FIXER_FUTURE_MODE=1 php-cs-fixer fix",
"cs-fix": "PHP_CS_FIXER_IGNORE_ENV=1 php-cs-fixer fix",
"test": "bin/phpunit-zm --no-coverage"
}
}

View File

@@ -131,7 +131,7 @@ Public 成员函数</h2></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
成员变量</h2></td></tr>
<tr class="memitem:a835ac83b0f0a2c196532f370dc585aa0"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_z_m_1_1_framework.html#a835ac83b0f0a2c196532f370dc585aa0">VERSION_ID</a> = 724</td></tr>
<tr class="memitem:a835ac83b0f0a2c196532f370dc585aa0"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_z_m_1_1_framework.html#a835ac83b0f0a2c196532f370dc585aa0">VERSION_ID</a> = 725</td></tr>
<tr class="separator:a835ac83b0f0a2c196532f370dc585aa0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af71005841ce53adac00581ab0ba24c1f"><td class="memItemLeft" align="right" valign="top">const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_z_m_1_1_framework.html#af71005841ce53adac00581ab0ba24c1f">VERSION</a> = '3.2.4'</td></tr>
<tr class="separator:af71005841ce53adac00581ab0ba24c1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -522,7 +522,7 @@ Protected 属性</h2></td></tr>
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const VERSION_ID = 724</td>
<td class="memname">const VERSION_ID = 725</td>
</tr>
</table>
</div><div class="memdoc">

View File

@@ -2,6 +2,16 @@
> 本页面由框架命令 `./zhamao generate:text update-log-md` 自动生成
## v3.2.5
> 更新时间2024-10-02
* Fix install env issues by [@DreamMiu](https://github.com/DreamMiu) in [PR#374](https://github.com/zhamao-robot/zhamao-framework/pull/374)
* 修复 v3.sh 在无 PHP 环境下无法安装的问题 by [@crazywhalecc](https://github.com/crazywhalecc) in [PR#377](https://github.com/zhamao-robot/zhamao-framework/pull/377)
* Fix plugin:make command, remove uppercase name by [@crazywhalecc](https://github.com/crazywhalecc) in [PR#378](https://github.com/zhamao-robot/zhamao-framework/pull/378)
**源码变更记录**: <https://github.com/zhamao-robot/zhamao-framework/compare/3.2.4...3.2.5>
## v3.2.4
> 更新时间2023-06-13
@@ -247,18 +257,3 @@
**源码变更记录**: <https://github.com/zhamao-robot/zhamao-framework/compare/3.0.0-beta6...3.0.0-beta7>
## v3.0.0-beta6
> 更新时间2023-01-15
* 本次更新包含文档更新内容 5 个
* 更新版权所有年份 by [@crazywhalecc](https://github.com/crazywhalecc) in [PR#244](https://github.com/zhamao-robot/zhamao-framework/pull/244)
* 修复 Doxygen 缺少权限.. by [@sunxyw](https://github.com/sunxyw) in [PR#245](https://github.com/zhamao-robot/zhamao-framework/pull/245)
* 新增 prompt 方法的选项参数 by [@crazywhalecc](https://github.com/crazywhalecc) in [PR#248](https://github.com/zhamao-robot/zhamao-framework/pull/248)
* 优化 ZMRequest POST 数据时允许直接传入数组 by [@crazywhalecc](https://github.com/crazywhalecc) in [PR#249](https://github.com/zhamao-robot/zhamao-framework/pull/249)
* 删除 Context by [@crazywhalecc](https://github.com/crazywhalecc) in [PR#250](https://github.com/zhamao-robot/zhamao-framework/pull/250)
* 添加环境变量支持 by [@sunxyw](https://github.com/sunxyw) in [PR#255](https://github.com/zhamao-robot/zhamao-framework/pull/255)
* 重构插件加载器、BotContext、AnnotationMap 新增方法、修复部分 Bug by [@crazywhalecc](https://github.com/crazywhalecc) in [PR#254](https://github.com/zhamao-robot/zhamao-framework/pull/254)
**源码变更记录**: <https://github.com/zhamao-robot/zhamao-framework/compare/3.0.0-beta5...3.0.0-beta6>

View File

@@ -20,8 +20,7 @@ use ZM\Annotation\Interfaces\ErgodicAnnotation;
class Middleware extends AnnotationBase implements ErgodicAnnotation
{
/**
* @param string[] $args
* @param mixed $name
* @param mixed $name
*/
public function __construct(
/**

View File

@@ -20,7 +20,6 @@ class HandleExceptions implements Bootstrapper
E_USER_ERROR => ['PHP Error: ', 'error'],
E_USER_WARNING => ['PHP Warning: ', 'warning'],
E_USER_NOTICE => ['PHP Notice: ', 'notice'],
E_STRICT => ['PHP Strict: ', 'notice'],
E_RECOVERABLE_ERROR => ['PHP Recoverable Error: ', 'error'],
E_DEPRECATED => ['PHP Deprecated: ', 'notice'],
E_USER_DEPRECATED => ['PHP User Deprecated: ', 'notice'],
@@ -30,7 +29,7 @@ class HandleExceptions implements Bootstrapper
logger()->{$level_tip[1]}($error);
// 如果 return false 则错误会继续递交给 PHP 标准错误处理
return true;
}, E_ALL | E_STRICT);
});
// 重载异常处理器
ExceptionHandler::getInstance()->overrideWith(new Handler());

View File

@@ -25,7 +25,7 @@ trait CommandInteractTrait
* @param string $message
* @param mixed[] $context
*/
public function emergency($message, array $context = [])
public function emergency($message, array $context = []): void
{
$this->log(LogLevel::EMERGENCY, $message, $context);
}
@@ -39,7 +39,7 @@ trait CommandInteractTrait
* @param string $message
* @param mixed[] $context
*/
public function alert($message, array $context = [])
public function alert($message, array $context = []): void
{
$this->log(LogLevel::ALERT, $message, $context);
}
@@ -52,7 +52,7 @@ trait CommandInteractTrait
* @param string $message
* @param mixed[] $context
*/
public function critical($message, array $context = [])
public function critical($message, array $context = []): void
{
$this->log(LogLevel::CRITICAL, $message, $context);
}
@@ -64,7 +64,7 @@ trait CommandInteractTrait
* @param string $message
* @param mixed[] $context
*/
public function error($message, array $context = [])
public function error($message, array $context = []): void
{
$this->log(LogLevel::ERROR, $message, $context);
}
@@ -78,7 +78,7 @@ trait CommandInteractTrait
* @param string $message
* @param mixed[] $context
*/
public function warning($message, array $context = [])
public function warning($message, array $context = []): void
{
$this->log(LogLevel::WARNING, $message, $context);
}
@@ -89,7 +89,7 @@ trait CommandInteractTrait
* @param string $message
* @param mixed[] $context
*/
public function notice($message, array $context = [])
public function notice($message, array $context = []): void
{
$this->log(LogLevel::NOTICE, $message, $context);
}
@@ -101,7 +101,7 @@ trait CommandInteractTrait
*
* @param string $message
*/
public function info($message, array $context = [])
public function info($message, array $context = []): void
{
$this->log(LogLevel::INFO, $message, $context);
}
@@ -111,12 +111,12 @@ trait CommandInteractTrait
*
* @param string $message
*/
public function debug($message, array $context = [])
public function debug($message, array $context = []): void
{
$this->log(LogLevel::DEBUG, $message, $context);
}
public function log($level, $message, array $context = [])
public function log($level, $message, array $context = []): void
{
$msg = match ($level) {
'info' => "<info>{$message}</info>",

View File

@@ -262,7 +262,6 @@ class ProxyServerCommand extends Command
break;
case CMD_UDP_ASSOCIATE:
$connection->stage = STAGE_UDP_ASSOC;
var_dump('CMD_UDP_ASSOCIATE ' . ($this->config['udp_port'] ?? 2222));
if ($this->config['udp_port'] == 0) {
$connection->udpWorker = new Worker('udp://0.0.0.0:0');
/* @phpstan-ignore-next-line */
@@ -274,7 +273,7 @@ class ProxyServerCommand extends Command
$listenInfo = stream_socket_get_name($connection->udpWorker->getMainSocket(), false);
[$bind_addr, $bind_port] = explode(':', $listenInfo);
} else {
$bind_port = $this->config['udp_port'] ?? 2222;
$bind_port = $this->config['udp_port'];
}
$bind_addr = $this->config['wanIP'] ?? '192.168.1.1';

View File

@@ -32,7 +32,11 @@ final class ConsoleApplication extends Application
// 初始化 Composer 变量
if (file_exists(WORKING_DIR . '/runtime/composer.phar')) {
echo '* Using native composer' . PHP_EOL;
putenv('COMPOSER_EXECUTABLE=' . WORKING_DIR . '/runtime/composer.phar');
if (WORKING_DIR . '/runtime/php' === PHP_BINARY) {
putenv('COMPOSER_EXECUTABLE="' . WORKING_DIR . '/runtime/php ' . WORKING_DIR . '/runtime/composer.phar"');
} else {
putenv('COMPOSER_EXECUTABLE="' . WORKING_DIR . '/runtime/composer.phar"');
}
}
$this->registerCommandLoader();

View File

@@ -47,10 +47,10 @@ class Framework
use Singleton;
/** @var int 版本ID */
public const VERSION_ID = 725;
public const VERSION_ID = 726;
/** @var string 版本名称 */
public const VERSION = '3.2.4';
public const VERSION = '3.2.6';
/**
* @var RuntimePreferences 运行时偏好(环境信息&参数)

View File

@@ -49,6 +49,9 @@ class EventProviderTest extends TestCase
public function testAddEventListenerWithCallableArray(): void
{
if (PHP_VERSION_ID >= 80400) {
$this->markTestSkipped('PHP 8.4.0 has a bug that cannot pass this test');
}
// no meaning for using ZMUtil, just for testing
$event = new ZMUtil();
$callback = [$this, 'testAddEventListenerWithCallableArray'];