Rev 16954 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
<?php
declare(strict_types=1);
namespace LeadersLinked\Handler;
use Laminas\Db\Adapter\AdapterInterface;
use Laminas\Log\LoggerInterface;
use LeadersLinked\Mapper\SessionMapper;
use Laminas\Session\SaveHandler\SaveHandlerInterface;
class SessionHandler implements SaveHandlerInterface
{
/**
*
* @var SessionMapper
*/
private $sessionMapper;
/**
*
* @var string
*/
private $session_name;
/**
*
* @var int
*/
private $session_lifetime;
/**
*
* @param AdapterInterface $adapter
* @param LoggerInterface $logger
* @param int $session_lifetime
*/
public function __construct(AdapterInterface $adapter, LoggerInterface $logger, int $session_lifetime)
{
$this->sessionMapper = SessionMapper::getInstance($adapter, $logger);
$this->session_lifetime = $session_lifetime;
}
public function open ($save_path, $session_name)
{
$this->session_name = $session_name;
return true;
}
public function close()
{
return true;
}
public function read($session_id)
{
$session = $this->sessionMapper->fetchOne($session_id);
if($session){
return $session->data;
}else{
return '';
}
}
public function write($session_id, $session_data)
{
$session = $this->read($session_id);
if($session) {
return $this->sessionMapper->update($session_id, $session_data);
} else {
return $this->sessionMapper->insert($session_id, $this->session_name, $session_data, $this->session_lifetime);
}
}
public function destroy($session_id)
{
return $this->sessionMapper->delete($session_id);
}
public function gc($maxlifetime)
{
return $this->sessionMapper->deleteAllExpired($maxlifetime);
}
}