* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ namespace PrestaShopBundle\EventListener; use PrestaShop\PrestaShop\Core\Exception\CoreException; use PrestaShopBundle\Routing\Converter\LegacyUrlConverter; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpKernel\Event\RequestEvent; /** * Converts any legacy url into a migrated Symfony url (if it exists) and redirect to it. */ class LegacyUrlListener { /** * @var LegacyUrlConverter */ private $converter; /** * @param LegacyUrlConverter $converter */ public function __construct(LegacyUrlConverter $converter) { $this->converter = $converter; } /** * @param RequestEvent $event */ public function onKernelRequest(RequestEvent $event) { if (!$event->isMasterRequest()) { return; } try { $convertedUrl = $this->converter->convertByRequest($event->getRequest()); } catch (CoreException $e) { return; } $event->setResponse(new RedirectResponse($convertedUrl)); } }