From 2b8cab1824885ab0d39ac8b265660ad28ce1a6ed Mon Sep 17 00:00:00 2001 From: crazywhalecc Date: Sun, 20 Mar 2022 19:05:13 +0800 Subject: [PATCH] add AnnotationReader ignore name config (build 445, 2.7.0-beta5) --- config/global.php | 22 ++++++++++++++-------- src/ZM/Annotation/AnnotationParser.php | 13 +++++++++++++ src/ZM/ConsoleApplication.php | 4 ++-- 3 files changed, 29 insertions(+), 10 deletions(-) diff --git a/config/global.php b/config/global.php index 78d2b3d7..831a6ef0 100644 --- a/config/global.php +++ b/config/global.php @@ -28,12 +28,12 @@ $config['crash_dir'] = $config['zm_data'] . 'crash/'; /* 对应swoole的server->set参数 */ $config['swoole'] = [ 'log_file' => $config['crash_dir'] . 'swoole_error.log', - //'worker_num' => swoole_cpu_num(), //如果你只有一个 OneBot 实例连接到框架并且代码没有复杂的CPU密集计算,则可把这里改为1使用全局变量 - 'dispatch_mode' => 2, //包分配原则,见 https://wiki.swoole.com/#/server/setting?id=dispatch_mode + // 'worker_num' => swoole_cpu_num(), //如果你只有一个 OneBot 实例连接到框架并且代码没有复杂的CPU密集计算,则可把这里改为1使用全局变量 + 'dispatch_mode' => 2, // 包分配原则,见 https://wiki.swoole.com/#/server/setting?id=dispatch_mode 'max_coroutine' => 300000, 'max_wait_time' => 5, - //'task_worker_num' => 4, - //'task_enable_coroutine' => true + // 'task_worker_num' => 4, + // 'task_enable_coroutine' => true ]; /* 一些框架与框架运行时设置的调整 */ @@ -44,13 +44,19 @@ $config['runtime'] = [ 'reload_delay_time' => 800, 'global_middleware_binding' => [], 'save_console_log_file' => false, // 改为目标路径,则将 Console 输出的日志保存到文件 + 'annotation_reader_ignore' => [ // 设置注解解析器忽略的注解名或命名空间,防止解析到不该解析的 + 'name' => [ + 'mixin', + ], + 'namespace' => [], + ], ]; /* 轻量字符串缓存,默认开启 */ $config['light_cache'] = [ - 'size' => 512, //最多允许储存的条数(需要2的倍数) - 'max_strlen' => 32768, //单行字符串最大长度(需要2的倍数) - 'hash_conflict_proportion' => 0.6, //Hash冲突率(越大越好,但是需要的内存更多) + 'size' => 512, // 最多允许储存的条数(需要2的倍数) + 'max_strlen' => 32768, // 单行字符串最大长度(需要2的倍数) + 'hash_conflict_proportion' => 0.6, // Hash冲突率(越大越好,但是需要的内存更多) 'persistence_path' => $config['zm_data'] . '_cache.json', 'auto_save_interval' => 900, ]; @@ -102,7 +108,7 @@ $config['http_default_code_page'] = [ /* zhamao-framework在框架启动时初始化的atomic们 */ $config['init_atomics'] = [ - //'custom_atomic_name' => 0, //自定义添加的Atomic + // 'custom_atomic_name' => 0, //自定义添加的Atomic ]; /* 终端日志显示等级(0-4) */ diff --git a/src/ZM/Annotation/AnnotationParser.php b/src/ZM/Annotation/AnnotationParser.php index c68797ad..b6162f5c 100644 --- a/src/ZM/Annotation/AnnotationParser.php +++ b/src/ZM/Annotation/AnnotationParser.php @@ -65,6 +65,19 @@ class AnnotationParser foreach ($this->path_list as $path) { Console::debug('parsing annotation in ' . $path[0] . ':' . $path[1]); $all_class = ZMUtil::getClassesPsr4($path[0], $path[1]); + + $conf = ZMConfig::get('global', 'runtime')['annotation_reader_ignore'] ?? []; + if (isset($conf['name']) && is_array($conf['name'])) { + foreach ($conf['name'] as $v) { + AnnotationReader::addGlobalIgnoredName($v); + } + } + if (isset($conf['namespace']) && is_array($conf['namespace'])) { + foreach ($conf['namespace'] as $v) { + AnnotationReader::addGlobalIgnoredNamespace($v); + } + } + AnnotationReader::addGlobalIgnoredName('mixin'); $this->reader = new DualReader(new AnnotationReader(), new AttributeReader()); foreach ($all_class as $v) { Console::debug('正在检索 ' . $v); diff --git a/src/ZM/ConsoleApplication.php b/src/ZM/ConsoleApplication.php index c0b690b0..2a79c48f 100644 --- a/src/ZM/ConsoleApplication.php +++ b/src/ZM/ConsoleApplication.php @@ -28,9 +28,9 @@ use ZM\Exception\InitException; class ConsoleApplication extends Application { - public const VERSION_ID = 444; + public const VERSION_ID = 445; - public const VERSION = '2.7.0-beta4'; + public const VERSION = '2.7.0-beta5'; private static $obj;