src/EventListener/FilterParamConverter.php line 9

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace App\EventListener;
  3. use Symfony\Component\HttpKernel\Event\ControllerEvent;
  4. class FilterParamConverter
  5. {
  6.     public function onKernelController(ControllerEvent $event)
  7.     {
  8.         $request $event->getRequest();
  9.         if ($request->query->has('filter')) {
  10.             $data $this->parse($request->query->get('filter'));
  11.             $request->query->set('filter'$data);
  12.         }
  13.         if ($request->query->has('order')) {
  14.             $data $this->parse($request->query->get('order'));
  15.             $request->query->set('order'$data);
  16.         }
  17.     }
  18.     private function parse($raw): array
  19.     {
  20.         if (!is_string($raw)) {
  21.             return $raw;
  22.         }
  23.         $json json_decode($rawtrue);
  24.         if (false !== $json) {
  25.             return $json;
  26.         }
  27.         return [];
  28.     }
  29. }