src/Subscriber/SwaggerSubscriber.php line 31

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Subscriber;
  4. use App\Action\Query\Software\GetSoftwareVersionQuery;
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. use Symfony\Component\HttpKernel\Event\RequestEvent;
  7. use Symfony\Component\HttpKernel\KernelEvents;
  8. use Symfony\Component\Messenger\MessageBusInterface;
  9. use Symfony\Component\Messenger\Stamp\HandledStamp;
  10. class SwaggerSubscriber implements EventSubscriberInterface
  11. {
  12.     const ALLOWED_CONTROLLER_NAMES = [
  13.         'nelmio_api_doc.controller.swagger_ui',
  14.         'nelmio_api_doc.controller.swagger',
  15.     ];
  16.     /**
  17.      * @var MessageBusInterface
  18.      */
  19.     private $messageBus;
  20.     public function __construct(MessageBusInterface $messageBus)
  21.     {
  22.         $this->messageBus $messageBus;
  23.     }
  24.     public function onKernelRequest(RequestEvent $event)
  25.     {
  26.         $request $event->getRequest();
  27.         //TODO throw Exception not expected value of xmlns param
  28.         if (
  29.             isset($request->attributes->all()['_controller'])
  30.             && in_array($request->attributes->all()['_controller'], self::ALLOWED_CONTROLLER_NAMEStrue)
  31.         ) {
  32.             $_ENV['CONNECTED_SOFT_VERSION'] = $this->messageBus->dispatch(new GetSoftwareVersionQuery())
  33.                 ->last(HandledStamp::class)->getResult();
  34.         }
  35.     }
  36.     public static function getSubscribedEvents()
  37.     {
  38.         return [
  39.             KernelEvents::REQUEST => [['onKernelRequest'19]],
  40.         ];
  41.     }
  42. }