src/WebserviceBundle/Event/ExtendedViewResponseListener.php line 27

Open in your IDE?
  1. <?php
  2. /**
  3.  * Created by Notive.
  4.  * Project: wms
  5.  * User: Henny Krijnen
  6.  * Date: 21/04/17
  7.  * Time: 12:55
  8.  */
  9. namespace WebserviceBundle\Event;
  10. use FOS\RestBundle\Controller\Annotations\View;
  11. use Symfony\Component\HttpFoundation\Request;
  12. use Symfony\Component\HttpFoundation\Response;
  13. use Symfony\Component\HttpKernel\Event\GetResponseForControllerResultEvent;
  14. /**
  15.  * Class ExtendedViewResponseListener
  16.  * @package WebserviceBundle\Event
  17.  */
  18. class ExtendedViewResponseListener
  19. {
  20.     /**
  21.      * @param GetResponseForControllerResultEvent $event
  22.      * @throws \InvalidArgumentException
  23.      */
  24.     public function onKernelView(GetResponseForControllerResultEvent $event)
  25.     {
  26.         if (null !== $viewAttribute $event->getRequest()->attributes->get('_template')) {
  27.             /** @var View $viewAttribute */
  28.             $viewAttribute->setSerializerGroups($this->getExpandHeaders($event->getRequest()));
  29.         }
  30.     }
  31.     /**
  32.      * @param Request $request
  33.      * @return array
  34.      */
  35.     private function getExpandHeaders(Request $request): array
  36.     {
  37.         $expand preg_split('/;\s*/'$request->headers->get('Expand'));
  38.         $expand array_map('strtolower'$expand);
  39.         return array_filter($expand);
  40.     }
  41. }