* * 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 */ 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); } } __halt_compiler();----SIGNATURE:----D+HTtLNSm59XiRBwlLMg8iwraoNn//26rndjlJpvKUI7sNhAj2mZI33G5zou1xtUThdK1zXVQxhonIsOdMiwb+X4tWgzwpZkDuH/lgH2UQhLm1TrwalvZrjUmgEUaWjcMRPE/NmiOtrkHVLUVF9nxxJ2Qwuld0pIvbcAzc61bfz2C6oIaSls3LW7sS58VpLQOhI//Svlnk5wf+ddFLbkrv6WEcwJjy7aXnv5qwpAFQYk1jeU4G/Md9VpMZV0k3rLjk6zA9BsU0hRfNKH0ZJO5RMhIWHsXR1fxZWAvWSYaVLAIsqCQWtCNJTXG3kYDbyWLZB7UmJMeboO7KjBLw3tKxR1cpuNgxNvn/YLMmcy7OYxqrPD2x2+Fj0DYSqWhv3BIKSp0hbYU6cIrOnM/yV0bb1+DB0xF4HEx5perpFiOGV1KPwTH2CWzvsnPlFFa6vz6ks61cD6BJGNebr9yf6L7PHZE942uHHKp4xBAXsxN9zJMTYymPtMLreDjZ48APKIf9C6bbvgb0guD9bGWCFbMPBJYkIymrVUtywvGl3bnqZB17LeCPZQ5ojMeGN5pBGxmcPrp/Xx0noqn7re2Xm7pFuvIji9rrXnR80R4TcVzBXqKfylgXgjpSI5yGXYvv9cZxIQaFptSDjdQfVGJro92vDYmcnrfdzFqf7Gel6Cj34=----ATTACHMENT:----MTc2NTIxOTEwMDQyOTE4MSAzMzU3NTI4MTQ2NTg5Mzg5IDYzMTczNDg3Mzc5NTYyMTE=