Skip to content

Commit f0dbf23

Browse files
committed
feature #1687 [make:listener] use FQCN for kernel events, fix adding unnecessary #[AsEventListener] arg (kbond)
This PR was squashed before being merged into the 1.x branch. Discussion ---------- [make:listener] use FQCN for kernel events, fix adding unnecessary `#[AsEventListener]` arg - adding the `event` argument to `#[AsEventListener]` isn't required when it's a FQCN - use FQCN for kernel events - I believe this is the best practice Commits ------- cd1d908 [make:listener] use FQCN for kernel events, fix adding unnecessary `#[AsEventListener]` arg
2 parents fd1764a + cd1d908 commit f0dbf23

File tree

9 files changed

+17
-21
lines changed

9 files changed

+17
-21
lines changed

src/Maker/MakeListener.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -153,13 +153,12 @@ public function generate(InputInterface $input, ConsoleStyle $io, Generator $gen
153153
$eventFullClassName = $this->eventRegistry->getEventClassName($event);
154154
$eventClassName = $eventFullClassName ? Str::getShortClassName($eventFullClassName) : null;
155155

156-
if (null !== ($eventConstant = $this->getEventConstant($event))) {
157-
$useStatements->addUseStatement(KernelEvents::class);
158-
$eventName = $eventConstant;
159-
} else {
160-
$eventName = class_exists($event) ? \sprintf('%s::class', $eventClassName) : \sprintf('\'%s\'', $event);
156+
if ($this->getEventConstant($event)) {
157+
$event = $eventFullClassName;
161158
}
162159

160+
$eventName = class_exists($event) ? \sprintf('%s::class', $eventClassName) : \sprintf('\'%s\'', $event);
161+
163162
if (null !== $eventFullClassName) {
164163
$useStatements->addUseStatement($eventFullClassName);
165164
}
@@ -230,6 +229,7 @@ private function generateListenerClass(InputInterface $input, ConsoleStyle $io,
230229
[
231230
'use_statements' => $useStatements,
232231
'event' => $eventName,
232+
'class_event' => str_ends_with($eventName, '::class'),
233233
'event_arg' => $eventClassName ? \sprintf('%s $event', $eventClassName) : '$event',
234234
'method_name' => class_exists($event) ? Str::asEventMethod($eventClassName) : Str::asEventMethod($event),
235235
]

templates/event/Listener.tpl.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
final class <?= $class_name."\n" ?>
88
{
9-
#[AsEventListener(event: <?= $event ?>)]
9+
#[AsEventListener<?php if (!$class_event): ?>(event: <?= $event ?>)<?php endif ?>]
1010
public function <?= $method_name ?>(<?= $event_arg ?>): void
1111
{
1212
// ...

tests/Maker/MakeSubscriberTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public function getTestDetails(): \Generator
3939
);
4040

4141
self::assertStringContainsString(
42-
'KernelEvents::REQUEST => \'onKernelRequest\'',
42+
'RequestEvent::class => \'onRequestEvent\'',
4343
file_get_contents($runner->getPath('src/EventSubscriber/FooBarSubscriber.php'))
4444
);
4545
}),

tests/fixtures/make-listener/tests/EventListener/BarListener.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
final class BarListener
99
{
10-
#[AsEventListener(event: RequestEvent::class)]
10+
#[AsEventListener]
1111
public function onRequestEvent(RequestEvent $event): void
1212
{
1313
// ...

tests/fixtures/make-listener/tests/EventListener/CustomListener.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
final class CustomListener
99
{
10-
#[AsEventListener(event: Generator::class)]
10+
#[AsEventListener]
1111
public function onGenerator(Generator $event): void
1212
{
1313
// ...

tests/fixtures/make-listener/tests/EventListener/FooBarListener.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,11 @@
44

55
use Symfony\Component\EventDispatcher\Attribute\AsEventListener;
66
use Symfony\Component\HttpKernel\Event\RequestEvent;
7-
use Symfony\Component\HttpKernel\KernelEvents;
87

98
final class FooBarListener
109
{
11-
#[AsEventListener(event: KernelEvents::REQUEST)]
12-
public function onKernelRequest(RequestEvent $event): void
10+
#[AsEventListener]
11+
public function onRequestEvent(RequestEvent $event): void
1312
{
1413
// ...
1514
}

tests/fixtures/make-listener/tests/EventListener/FooListener.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,11 @@
44

55
use Symfony\Component\EventDispatcher\Attribute\AsEventListener;
66
use Symfony\Component\HttpKernel\Event\RequestEvent;
7-
use Symfony\Component\HttpKernel\KernelEvents;
87

98
final class FooListener
109
{
11-
#[AsEventListener(event: KernelEvents::REQUEST)]
12-
public function onKernelRequest(RequestEvent $event): void
10+
#[AsEventListener]
11+
public function onRequestEvent(RequestEvent $event): void
1312
{
1413
// ...
1514
}

tests/fixtures/make-listener/tests/EventSubscriber/FooBarSubscriber.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,18 @@
44

55
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
66
use Symfony\Component\HttpKernel\Event\RequestEvent;
7-
use Symfony\Component\HttpKernel\KernelEvents;
87

98
class FooBarSubscriber implements EventSubscriberInterface
109
{
11-
public function onKernelRequest(RequestEvent $event): void
10+
public function onRequestEvent(RequestEvent $event): void
1211
{
1312
// ...
1413
}
1514

1615
public static function getSubscribedEvents(): array
1716
{
1817
return [
19-
KernelEvents::REQUEST => 'onKernelRequest',
18+
RequestEvent::class => 'onRequestEvent',
2019
];
2120
}
2221
}

tests/fixtures/make-listener/tests/EventSubscriber/FooSubscriber.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,18 @@
44

55
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
66
use Symfony\Component\HttpKernel\Event\RequestEvent;
7-
use Symfony\Component\HttpKernel\KernelEvents;
87

98
class FooSubscriber implements EventSubscriberInterface
109
{
11-
public function onKernelRequest(RequestEvent $event): void
10+
public function onRequestEvent(RequestEvent $event): void
1211
{
1312
// ...
1413
}
1514

1615
public static function getSubscribedEvents(): array
1716
{
1817
return [
19-
KernelEvents::REQUEST => 'onKernelRequest',
18+
RequestEvent::class => 'onRequestEvent',
2019
];
2120
}
2221
}

0 commit comments

Comments
 (0)