diff --git a/src/Admin.php b/src/Admin.php index e3b6afa..fde6e00 100644 --- a/src/Admin.php +++ b/src/Admin.php @@ -18,12 +18,12 @@ class Admin /** * 版本号 */ - const VERSION = "1.5.10"; + const VERSION = "1.5.11"; /** * 发布号 */ - const RELEASE = "20240731"; + const RELEASE = "20240806"; /** * 插件 diff --git a/src/Event/Action.php b/src/Event/Action.php index bbb017b..d447234 100644 --- a/src/Event/Action.php +++ b/src/Event/Action.php @@ -36,7 +36,7 @@ public function trigger($event, ...$var): void $listeners = $this->arraySort($listeners, 'sort'); - foreach ($listeners as $key => $listener) { + foreach ($this->range($listeners) as $listener) { $this->dispatch($listener['listener'], $var); } } diff --git a/src/Event/Event.php b/src/Event/Event.php index 181bd2d..3ece2be 100644 --- a/src/Event/Event.php +++ b/src/Event/Event.php @@ -4,6 +4,7 @@ namespace Laket\Admin\Event; +use Iterator; use ReflectionClass; use ReflectionMethod; @@ -256,6 +257,19 @@ protected function dispatch($event, array $params = []) return $this->app->invoke($call, $params); } + /** + * 迭代数据 + * + * @param array $data 数据 + * @return Iterator + */ + protected function range(array $data = []): Iterator + { + foreach ($data as $k => $v) { + yield $k => $v; + } + } + /** * 排序 */ diff --git a/src/Event/Filter.php b/src/Event/Filter.php index dc01094..7bd105a 100644 --- a/src/Event/Filter.php +++ b/src/Event/Filter.php @@ -40,7 +40,7 @@ public function trigger($event, $value = null, ...$var) $tmp = $var; $result = $value; - foreach ($listeners as $key => $listener) { + foreach ($this->range($listeners) as $listener) { array_unshift($tmp, $result); $result = $this->dispatch($listener['listener'], $tmp);