Skip to content

Commit 2d100f1

Browse files
committed
优化事件
1 parent 1bcf4b5 commit 2d100f1

File tree

4 files changed

+18
-9
lines changed

4 files changed

+18
-9
lines changed

src/Event/Action.php

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,22 @@ public function trigger($event, ...$var): void
2424

2525
$listeners = $this->listener[$event] ?? [];
2626

27-
if (str_contains($event, '.')) {
27+
if (str_contains($event, '.*')) {
28+
$needSort = false;
2829
[$prefix, $event] = explode('.', $event, 2);
2930

3031
foreach ($this->listener as $e => $listener) {
3132
if ($event == '*' && str_starts_with($e, $prefix . '.')) {
3233
$listeners = array_merge($listeners, $listener);
34+
$needSort = true;
3335
}
3436
}
37+
38+
if ($needSort) {
39+
$listeners = $this->arraySort($listeners, 'sort');
40+
}
3541
}
3642

37-
$listeners = $this->arraySort($listeners, 'sort');
38-
3943
foreach ($listeners as $key => $listener) {
4044
$this->dispatch($listener['listener'], $var);
4145
}

src/Event/Event.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ public function listen(string $event, $listener, int $sort = 1)
5151
'key' => $this->filterBuildUniqueId($listener),
5252
];
5353

54+
$this->listener[$event] = $this->arraySort($this->listener[$event], 'sort');
55+
5456
return $this;
5557
}
5658

src/Event/Filter.php

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,24 @@ public function trigger($event, $value = null, ...$var)
2424
$event = $event::class;
2525
}
2626

27-
$result = [];
2827
$listeners = $this->listener[$event] ?? [];
2928

30-
if (str_contains($event, '.')) {
29+
if (str_contains($event, '.*')) {
30+
$needSort = false;
3131
[$prefix, $event] = explode('.', $event, 2);
3232

3333
foreach ($this->listener as $e => $listener) {
3434
if ($event == '*' && str_starts_with($e, $prefix . '.')) {
3535
$listeners = array_merge($listeners, $listener);
36+
$needSort = true;
3637
}
3738
}
39+
40+
if ($needSort) {
41+
$listeners = $this->arraySort($listeners, 'sort');
42+
}
3843
}
3944

40-
$listeners = $this->arraySort($listeners, 'sort');
41-
4245
$tmp = $var;
4346
$result = $value;
4447
foreach ($listeners as $key => $listener) {

src/helper.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
use Laket\Admin\Model\Attachment as AttachmentModel;
1515

1616
// 版本号
17-
define("LAKET_VERSION", "1.5.6");
18-
define("LAKET_RELEASE", "1.5.6.20240723");
17+
define("LAKET_VERSION", "1.5.7");
18+
define("LAKET_RELEASE", "1.5.7.20240728");
1919

2020
if (! function_exists('make')) {
2121
/**

0 commit comments

Comments
 (0)