Event subscriber methods hooked in getSubscribedEvents() must return void, as the event is passed by reference and returning it has no effect
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Contracts\EventDispatcher\Event;
final class SomeEventSubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents(): array
{
return ['some_event' => 'onEvent'];
}
- public function onEvent(Event $event): Event
+ public function onEvent(Event $event): void
{
- return $event->setSomething('value');
+ $event->setSomething('value');
}
}
Configure your rector.php:
<?php
use Rector\Config\RectorConfig;
use Rector\Symfony\CodeQuality\Rector\Class_\EventSubscriberMethodReturnVoidRector;
return RectorConfig::configure()
->withRules([
EventSubscriberMethodReturnVoidRector::class,
]);