lib/Common/PimcoreUtil/SessionUtil/Session.php line 46

Open in your IDE?
  1. <?php
  2. namespace Common\PimcoreUtil\SessionUtil;
  3. use Pimcore;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  6. class Session{
  7.     protected string $keyHead='';
  8.     static function create(string $keyHead):static{
  9.         return new static($keyHead);
  10.     }
  11.     protected static function getRequest():Request{
  12.         return Pimcore::getContainer()->get('request_stack')->getMasterRequest();
  13.     }
  14.     protected static function getSession():SessionInterface{
  15.         return static::getRequest()->getSession();
  16.     }
  17.     protected function __construct(string $keyHead){
  18.         $this->keyHead=$keyHead;
  19.     }
  20.     protected function getFinalKey(string $key):string{
  21.         return $this->keyHead.'.'.$key;
  22.     }
  23.     function set(string $key,mixed $value):void{
  24.         $finalKey=static::getFinalKey($key);
  25.         $finalValue=serialize($value);
  26.         $session=static::getSession();
  27.         $session->set($finalKey,$finalValue);
  28.     }
  29.     function get(string $key,mixed $defaultValue=null){
  30.         $finalKey=static::getFinalKey($key);
  31.         $session=static::getSession();
  32.         $finalValue=$session->get($finalKey);
  33.         $res=null===$finalValue?$defaultValue:unserialize($finalValue);
  34.         return $res;
  35.     }
  36.     function has(string $key):bool{
  37.         $finalKey=static::getFinalKey($key);
  38.         $session=static::getSession();
  39.         $finalValue=$session->get($finalKey);
  40.         $res=null!==$finalValue;
  41.         return $res;
  42.     }
  43. }