rector-symfony icon indicating copy to clipboard operation
rector-symfony copied to clipboard

Add removal of AsEventListener attribute when converting to EventSubscriber

Open stefantalen opened this issue 11 months ago • 0 comments

Current behaviour results in a mixed result when the #AsEventListener attribute has been used:

 namespace App\EventListener;

+use Symfony\Component\EventDispatcher\EventSubscriberInterface;
 use App\Exception\Http\RestHttpExceptionInterface;
 use FOS\RestBundle\View\View;
 use FOS\RestBundle\View\ViewHandlerInterface;
@@ @@
 use Symfony\Component\HttpKernel\KernelEvents;

 #[AsEventListener(KernelEvents::EXCEPTION, method: 'onKernelException', priority: 10)]
-class RestExceptionListener
+class RestExceptionEventSubscriber implements EventSubscriberInterface
 {
     public function __construct(
         protected ViewHandlerInterface $viewHandler,
@@ @@
             $response = $this->viewHandler->handle($view);
             $event->setResponse($response);
         }
+    }
+    /**
+     * @return array<string, mixed>
+     */
+    public static function getSubscribedEvents(): array
+    {
+        return [KernelEvents::EXCEPTION => ['onKernelException', 10]];
     }
 }

Since the rule is there to convert a Listener to a Subscriber it makes sense to remove the attribute right?

Todo:

  • [ ] Add fixture(s)
  • [ ] Code formatting

stefantalen avatar Mar 08 '24 15:03 stefantalen