class StrictSessionHandler extends AbstractSessionHandler
Adds basic SessionUpdateTimestampHandlerInterface behaviors to another SessionHandlerInterface.
public
|
|
open($savePath, $sessionName)
|
{@inheritdoc} | |
protected
|
string |
doRead(string $sessionId)
|
No description | |
protected
|
bool |
doWrite(string $sessionId, string $data)
|
No description | |
protected
|
bool |
doDestroy(string $sessionId)
|
No description | |
public
|
|
validateId($sessionId)
|
{@inheritdoc} | from AbstractSessionHandler |
public
|
|
read($sessionId)
|
{@inheritdoc} | from AbstractSessionHandler |
public
|
|
write($sessionId, $data)
|
{@inheritdoc} | from AbstractSessionHandler |
public
|
|
destroy($sessionId)
|
{@inheritdoc} | |
public
|
|
__construct(SessionHandlerInterface $handler)
|
No description | |
public
|
|
updateTimestamp($sessionId, $data)
|
{@inheritdoc} | |
public
|
|
close()
|
{@inheritdoc} | |
public
|
|
gc($maxlifetime)
|
{@inheritdoc} |
open()public open($savePath, $sessionName)
{@inheritdoc}
$savePath |
||
$sessionName |
doRead()protected string doRead(string $sessionId)
string |
$sessionId |
string |
doWrite()protected bool doWrite(string $sessionId, string $data)
string |
$sessionId |
|
string |
$data |
bool |
doDestroy()protected bool doDestroy(string $sessionId)
string |
$sessionId |
bool |
validateId()public validateId($sessionId)
{@inheritdoc}
$sessionId |
read()public read($sessionId)
{@inheritdoc}
$sessionId |
write()public write($sessionId, $data)
{@inheritdoc}
$sessionId |
||
$data |
destroy()public destroy($sessionId)
{@inheritdoc}
$sessionId |
__construct()public __construct(SessionHandlerInterface $handler)
SessionHandlerInterface |
$handler |
updateTimestamp()public updateTimestamp($sessionId, $data)
{@inheritdoc}
$sessionId |
||
$data |
close()public close()
{@inheritdoc}
gc()public gc($maxlifetime)
{@inheritdoc}
$maxlifetime |
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Component\HttpFoundation\Session\Storage\Handler;
/**
* Adds basic `SessionUpdateTimestampHandlerInterface` behaviors to another `SessionHandlerInterface`.
*
* @author Nicolas Grekas <p@tchwork.com>
*/
class StrictSessionHandler extends AbstractSessionHandler
{
private $handler;
private $doDestroy;
public function __construct(\SessionHandlerInterface $handler)
{
if ($handler instanceof \SessionUpdateTimestampHandlerInterface) {
throw new \LogicException(sprintf('"%s" is already an instance of "SessionUpdateTimestampHandlerInterface", you cannot wrap it with "%s".', get_class($handler), self::class));
}
$this->handler = $handler;
}
/**
* {@inheritdoc}
*/
public function open($savePath, $sessionName)
{
parent::open($savePath, $sessionName);
return $this->handler->open($savePath, $sessionName);
}
/**
* {@inheritdoc}
*/
protected function doRead($sessionId)
{
return $this->handler->read($sessionId);
}
/**
* {@inheritdoc}
*/
public function updateTimestamp($sessionId, $data)
{
return $this->write($sessionId, $data);
}
/**
* {@inheritdoc}
*/
protected function doWrite($sessionId, $data)
{
return $this->handler->write($sessionId, $data);
}
/**
* {@inheritdoc}
*/
public function destroy($sessionId)
{
$this->doDestroy = true;
$destroyed = parent::destroy($sessionId);
return $this->doDestroy ? $this->doDestroy($sessionId) : $destroyed;
}
/**
* {@inheritdoc}
*/
protected function doDestroy($sessionId)
{
$this->doDestroy = false;
return $this->handler->destroy($sessionId);
}
/**
* {@inheritdoc}
*/
public function close()
{
return $this->handler->close();
}
/**
* {@inheritdoc}
*/
public function gc($maxlifetime)
{
return $this->handler->gc($maxlifetime);
}
}