vendor/ibexa/rest/src/bundle/EventListener/RequestListener.php line 52

Open in your IDE?
  1. <?php
  2. /**
  3.  * @copyright Copyright (C) Ibexa AS. All rights reserved.
  4.  * @license For full copyright and license information view LICENSE file distributed with this source code.
  5.  */
  6. namespace Ibexa\Bundle\Rest\EventListener;
  7. use Ibexa\Bundle\Rest\UriParser\UriParser;
  8. use Ibexa\Contracts\Rest\UriParser\UriParserInterface;
  9. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\HttpKernel\Event\RequestEvent;
  12. use Symfony\Component\HttpKernel\KernelEvents;
  13. /**
  14.  * @internal
  15.  *
  16.  * REST request listener.
  17.  *
  18.  * Flags a REST request as such using the is_rest_request attribute.
  19.  */
  20. class RequestListener implements EventSubscriberInterface
  21. {
  22.     /**
  23.      * @deprecated rely on \Ibexa\Contracts\Rest\UriParser\UriParserInterface::isRestRequest instead.
  24.      * @see \Ibexa\Contracts\Rest\UriParser\UriParserInterface::isRestRequest()
  25.      */
  26.     public const REST_PREFIX_PATTERN UriParser::DEFAULT_REST_PREFIX_PATTERN;
  27.     private UriParserInterface $uriParser;
  28.     public function __construct(UriParserInterface $uriParser)
  29.     {
  30.         $this->uriParser $uriParser;
  31.     }
  32.     /**
  33.      * @return array
  34.      */
  35.     public static function getSubscribedEvents(): array
  36.     {
  37.         return [
  38.             // 10001 is to ensure that REST requests are tagged before CorsListener is called
  39.             KernelEvents::REQUEST => ['onKernelRequest'10001],
  40.         ];
  41.     }
  42.     /**
  43.      * If the request is a REST one, sets the is_rest_request request attribute.
  44.      */
  45.     public function onKernelRequest(RequestEvent $event): void
  46.     {
  47.         $event->getRequest()->attributes->set(
  48.             'is_rest_request',
  49.             $this->uriParser->isRestRequest($event->getRequest())
  50.         );
  51.     }
  52.     /**
  53.      * @param \Symfony\Component\HttpFoundation\Request $request
  54.      *
  55.      * @return bool
  56.      *
  57.      * @deprecated use \Ibexa\Contracts\Rest\UriParser\UriParserInterface::isRestRequest instead
  58.      * @see \Ibexa\Contracts\Rest\UriParser\UriParserInterface::isRestRequest()
  59.      */
  60.     protected function hasRestPrefix(Request $request)
  61.     {
  62.         return preg_match(self::REST_PREFIX_PATTERN$request->getPathInfo());
  63.     }
  64. }
  65. class_alias(RequestListener::class, 'EzSystems\EzPlatformRestBundle\EventListener\RequestListener');