vendor/friendsofsymfony/rest-bundle/EventListener/VersionListener.php line 36

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of the FOSRestBundle package.
  4.  *
  5.  * (c) FriendsOfSymfony <http://friendsofsymfony.github.com/>
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE
  8.  * file that was distributed with this source code.
  9.  */
  10. namespace FOS\RestBundle\EventListener;
  11. use FOS\RestBundle\FOSRestBundle;
  12. use FOS\RestBundle\Version\ChainVersionResolver;
  13. use FOS\RestBundle\Version\VersionResolverInterface;
  14. use Symfony\Component\HttpKernel\Event\RequestEvent;
  15. /**
  16.  * @internal
  17.  */
  18. class VersionListener
  19. {
  20.     private $versionResolver;
  21.     private $defaultVersion;
  22.     public function __construct(VersionResolverInterface $versionResolver$defaultVersion null)
  23.     {
  24.         $this->versionResolver $versionResolver;
  25.         $this->defaultVersion $defaultVersion;
  26.     }
  27.     /**
  28.      * @param RequestEvent $event
  29.      */
  30.     public function onKernelRequest($event)
  31.     {
  32.         $request $event->getRequest();
  33.         if (!$request->attributes->get(FOSRestBundle::ZONE_ATTRIBUTEtrue)) {
  34.             return;
  35.         }
  36.         $version $this->versionResolver->resolve($request);
  37.         if (!$this->versionResolver instanceof ChainVersionResolver && null !== $version && !is_string($version)) {
  38.             @trigger_error(sprintf('Not returning a string or null from %s::resolve() when implementing the %s is deprecated since FOSRestBundle 2.8.'get_class($this->versionResolver), VersionResolverInterface::class), E_USER_DEPRECATED);
  39.         }
  40.         if ((false === $version || null === $version) && null !== $this->defaultVersion) {
  41.             $version $this->defaultVersion;
  42.         }
  43.         // Return if nothing to do
  44.         if (false === $version || null === $version) {
  45.             return;
  46.         }
  47.         $request->attributes->set('version'$version);
  48.     }
  49. }