src/EventListener/ThumborListener.php line 33

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use Symfony\Bundle\SecurityBundle\Security\FirewallMap;
  4. use Symfony\Component\HttpFoundation\Session\Session;
  5. use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
  6. use Symfony\Component\HttpKernel\Event\GetResponseForControllerResultEvent;
  7. class ThumborListener
  8. {
  9.     /**
  10.      * @var string
  11.      */
  12.     private $server;
  13.     /**
  14.      * @var FirewallMap
  15.      */
  16.     private $firewallMap;
  17.     /**
  18.      * @var Session
  19.      */
  20.     private $session;
  21.     public function __construct($serverFirewallMap $firewallMapSession $session)
  22.     {
  23.         $this->server $server;
  24.         $this->firewallMap $firewallMap;
  25.         $this->session $session;
  26.     }
  27.     public function onKernelController(FilterControllerEvent $event)
  28.     {
  29.         $request $event->getRequest();
  30.         $firewall $this->firewallMap->getFirewallConfig($request);
  31.         if ($firewall && in_array($firewall->getName(), ['api_headers''api'])) {
  32.             $this->session->set('thumbor'$this->checkThumbor());
  33.         }
  34.     }
  35.     private function checkThumbor()
  36.     {
  37.         $res curl_init($this->server);
  38.         curl_setopt($resCURLOPT_HEADERtrue);    // we want headers
  39.         curl_setopt($resCURLOPT_NOBODYtrue);    // we don't need body
  40.         curl_setopt($resCURLOPT_RETURNTRANSFER,1);
  41.         curl_setopt($resCURLOPT_TIMEOUT,10);
  42.         if (!$output curl_exec($res)) {
  43.             $serverLiving false;
  44.         } else {
  45.             $serverLiving true;
  46.         }
  47.         curl_close($res);
  48.         return $serverLiving;
  49.     }
  50. }