src/AutomarketBundle/Component/EstimateCaptcha.php line 25

Open in your IDE?
  1. <?php
  2. namespace AutomarketBundle\Component;
  3. use Symfony\Component\HttpFoundation\Session\Session;
  4. class EstimateCaptcha
  5. {
  6.     /**
  7.      * @var Session
  8.      */
  9.     private $session;
  10.     const KEY_PREFIX 'estimate_token';
  11.     public function __construct(Session $session)
  12.     {
  13.         $this->session $session;
  14.     }
  15.     public function generateToken()
  16.     {
  17.         $tokensArray $this->session->get(self::KEY_PREFIX);
  18.         if(!$tokensArray) {
  19.             $tokensArray = [];
  20.         }
  21.         $token md5('reafsdgnd'.uniqid().time());
  22.         array_push($tokensArray$token);
  23.         $this->session->set(self::KEY_PREFIX$tokensArray);
  24.         return $token;
  25.     }
  26.     public function validateToken($token): bool
  27.     {
  28.         $tokensArray $this->session->get(self::KEY_PREFIX);
  29.         return is_array($tokensArray) && in_array($token$tokensArray);
  30.     }
  31.     public function removeToken($token)
  32.     {
  33.         $tokensArray $this->session->get(self::KEY_PREFIX);
  34.         if ($key array_search($token$tokensArray)) {
  35.             unset($tokensArray[$key]);
  36.             $this->session->set(self::KEY_PREFIX$tokensArray);
  37.         }
  38.     }
  39. }