Skip to content

Commit

Permalink
update to 2.8.9, fix ergodic order via #365
Browse files Browse the repository at this point in the history
  • Loading branch information
crazywhalecc committed Jun 12, 2023
1 parent ea83ea2 commit f0cba01
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 2 deletions.
12 changes: 11 additions & 1 deletion src/ZM/Annotation/AnnotationParser.php
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,8 @@ class_annotations: [
}
*/

// 保留ergodic注解
$append_ergodics = [];
// 生成主树
$this->annotation_map[$v]['class_annotations'] = $class_annotations;
$this->annotation_map[$v]['methods'] = $methods;
Expand All @@ -120,7 +122,8 @@ class_annotations: [
foreach (($this->annotation_map[$v]['methods'] ?? []) as $method) {
$copy = clone $vs;
$copy->method = $method->getName();
$this->annotation_map[$v]['methods_annotations'][$method->getName()][] = $copy;
$append_ergodics[$method->getName()][] = $copy;
// $this->annotation_map[$v]['methods_annotations'][$method->getName()][] = $copy;
}
}

Expand All @@ -139,6 +142,13 @@ class_annotations: [

$inserted = [];

// 预处理:将Class的ergodic注解拼接到每个方法的注解列表前面,且按照顺序(修复 #365)
foreach ($this->annotation_map[$v]['methods_annotations'] as $method_name => $annos) {
if (isset($append_ergodics[$method_name])) {
$this->annotation_map[$v]['methods_annotations'][$method_name] = array_merge($append_ergodics[$method_name], $annos);
}
}

// 预处理3:处理每个函数上面的特殊注解,就是需要操作一些东西的
foreach (($this->annotation_map[$v]['methods_annotations'] ?? []) as $method_name => $methods_annotations) {
foreach ($methods_annotations as $method_anno) {
Expand Down
2 changes: 1 addition & 1 deletion src/ZM/ConsoleApplication.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ class ConsoleApplication extends Application
{
public const VERSION_ID = 480;

public const VERSION = '2.8.8';
public const VERSION = '2.8.9';

private static $obj;

Expand Down

0 comments on commit f0cba01

Please sign in to comment.