Я пытаюсь вернуть постоянный (301) ответ перенаправления от подписчика событий, подключенного к событиям ядра в Synfony PHP.
Мой подписчик выглядит следующим образом:
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
use Symfony\Component\HttpKernel\KernelEvents;
use Symfony\Component\HttpFoundation\RedirectResponse;
class KernelSubscriber implements EventSubscriberInterface {
public function __construct() {
// some stuff here but not relevant for this example
}
public static function getSubscribedEvents(): array {
return [ KernelEvents::REQUEST => 'onRequest' ];
}
public function onRequest(GetResponseEvent $event): void {
// if conditions met
// 301 redirect to some internal or external URL
if(!$event->isMasterRequest()) return;
}
}
Если бы это был контроллер, я бы возвратил $this->redirectToRoute('route')
или что-то в этом роде, но возвращение из метода onRequest
находится в совершенно другом контексте.
Как я могу вернуть ответ (в частности, перенаправление) от этого подписчика на событие?