<?php
namespace Common\PimcoreUtil\SessionUtil;
use Pimcore;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
class Session{
protected string $keyHead='';
static function create(string $keyHead):static{
return new static($keyHead);
}
protected static function getRequest():Request{
return Pimcore::getContainer()->get('request_stack')->getMasterRequest();
}
protected static function getSession():SessionInterface{
return static::getRequest()->getSession();
}
protected function __construct(string $keyHead){
$this->keyHead=$keyHead;
}
protected function getFinalKey(string $key):string{
return $this->keyHead.'.'.$key;
}
function set(string $key,mixed $value):void{
$finalKey=static::getFinalKey($key);
$finalValue=serialize($value);
$session=static::getSession();
$session->set($finalKey,$finalValue);
}
function get(string $key,mixed $defaultValue=null){
$finalKey=static::getFinalKey($key);
$session=static::getSession();
$finalValue=$session->get($finalKey);
$res=null===$finalValue?$defaultValue:unserialize($finalValue);
return $res;
}
function has(string $key):bool{
$finalKey=static::getFinalKey($key);
$session=static::getSession();
$finalValue=$session->get($finalKey);
$res=null!==$finalValue;
return $res;
}
}