<?php
namespace App\Service;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
/**
* Session Service
*/
class SessionService
{
private $session;
public function __construct(SessionInterface $session)
{
$this->session = $session;
$this->session->start();
}
/**
* effettua la set in sessione dell'oggetto 'value' con chiave 'name'
*/
public function set($name, $value)
{
$this->session->set($name, $value);
}
/**
* torna la chiave in sessione. se Null torna 'default'
*/
public function get($name, $default = null)
{
return $this->session->get($name, $default);
}
/**
* Rimuove la chiave in sessione
*/
public function remove($name)
{
return $this->session->remove($name);
}
/**
* Controlla se esiste la chiave in sessione
*/
public function has($name)
{
return $this->session->has($name);
}
/**
* Effettua la clear della sessione corrente senza invalidarla
*/
public function clear()
{
return $this->session->clear();
}
/**
* Torna tutte gli oggetti della sessione corrente
*/
public function getAll()
{
return $this->session->all();
}
/**
* Invalida la sessione corrente
*/
public function invalidate()
{
$this->session->invalidate();
}
/**
* Torna id della sessione corrente
*/
public function getId()
{
$this->session->getId();
}
public function isExpired()
{
if ((time() > $this->session->getMetadataBag()->getCreated() +
$this->session->getMetadataBag()->getLifetime())) {
$this->invalidate();
return true;
} else {
return false;
}
}
}