custom/plugins/PevrPayeverIntegration/src/EventListener/RouteScopeListener.php line 66

Open in your IDE?
  1. <?php
  2. /**
  3.  * payever GmbH
  4.  *
  5.  * NOTICE OF LICENSE
  6.  *
  7.  * Permission is hereby granted, free of charge, to any person obtaining a copy
  8.  * of this software and associated documentation files (the "Software"), to deal
  9.  * in the Software without restriction, including without limitation the rights
  10.  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  11.  * copies of the Software, and to permit persons to whom the Software is
  12.  * furnished to do so, subject to the following conditions:
  13.  *
  14.  * The above copyright notice and this permission notice shall be included in all
  15.  * copies or substantial portions of the Software.
  16.  *
  17.  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  18.  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  19.  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  20.  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  21.  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  22.  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  23.  * SOFTWARE.
  24.  *
  25.  * DISCLAIMER
  26.  *
  27.  * Do not edit or add to this file if you wish to upgrade payever Shopware package
  28.  * to newer versions in the future.
  29.  *
  30.  * @category    Payever
  31.  * @author      payever GmbH <service@payever.de>
  32.  * @copyright   Copyright (c) 2021 payever GmbH (http://www.payever.de)
  33.  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
  34.  */
  35. declare(strict_types=1);
  36. namespace Payever\PayeverPayments\EventListener;
  37. use Shopware\Core\PlatformRequest;
  38. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  39. use Symfony\Component\HttpKernel\Event\ControllerEvent;
  40. use Symfony\Component\HttpKernel\KernelEvents;
  41. use Shopware\Core\Framework\Routing\KernelListenerPriorities;
  42. /**
  43.  * Class RouteScopeListener
  44. */
  45. class RouteScopeListener implements EventSubscriberInterface
  46. {
  47.     public static function getSubscribedEvents(): array
  48.     {
  49.         return [
  50.             KernelEvents::CONTROLLER => [
  51.                 ['checkScope'KernelListenerPriorities::KERNEL_CONTROLLER_EVENT_PRIORITY_AUTH_VALIDATE_PRE],
  52.             ],
  53.         ];
  54.     }
  55.     /**
  56.      * Checking the compatibility of routers for different versions.
  57.      *
  58.      * https://github.com/shopware/platform/blob/trunk/UPGRADE-6.4.md#routescope
  59.      */
  60.     public function checkScope(ControllerEvent $event): void
  61.     {
  62.         $attributes $event->getRequest()->attributes;
  63.         if (!$attributes->get('payever') || !$attributes->get('_routeScope')) {
  64.             return;
  65.         }
  66.         $class 'Shopware\Core\Framework\Routing\Annotation\RouteScope';
  67.         $scope $attributes->get('_routeScope');
  68.         //version < 6.5
  69.         if (class_exists($class)) {
  70.             $scope = new $class(['scopes' => $scope]);
  71.             $attributes->set(PlatformRequest::ATTRIBUTE_ROUTE_SCOPE$scope);
  72.         }
  73.     }
  74. }