annotate vendor/symfony/http-foundation/Session/Storage/Handler/StrictSessionHandler.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 129ea1e6d783
children
rev   line source
Chris@14 1 <?php
Chris@14 2
Chris@14 3 /*
Chris@14 4 * This file is part of the Symfony package.
Chris@14 5 *
Chris@14 6 * (c) Fabien Potencier <fabien@symfony.com>
Chris@14 7 *
Chris@14 8 * For the full copyright and license information, please view the LICENSE
Chris@14 9 * file that was distributed with this source code.
Chris@14 10 */
Chris@14 11
Chris@14 12 namespace Symfony\Component\HttpFoundation\Session\Storage\Handler;
Chris@14 13
Chris@14 14 /**
Chris@14 15 * Adds basic `SessionUpdateTimestampHandlerInterface` behaviors to another `SessionHandlerInterface`.
Chris@14 16 *
Chris@14 17 * @author Nicolas Grekas <p@tchwork.com>
Chris@14 18 */
Chris@14 19 class StrictSessionHandler extends AbstractSessionHandler
Chris@14 20 {
Chris@14 21 private $handler;
Chris@14 22 private $doDestroy;
Chris@14 23
Chris@14 24 public function __construct(\SessionHandlerInterface $handler)
Chris@14 25 {
Chris@14 26 if ($handler instanceof \SessionUpdateTimestampHandlerInterface) {
Chris@17 27 throw new \LogicException(sprintf('"%s" is already an instance of "SessionUpdateTimestampHandlerInterface", you cannot wrap it with "%s".', \get_class($handler), self::class));
Chris@14 28 }
Chris@14 29
Chris@14 30 $this->handler = $handler;
Chris@14 31 }
Chris@14 32
Chris@14 33 /**
Chris@14 34 * {@inheritdoc}
Chris@14 35 */
Chris@14 36 public function open($savePath, $sessionName)
Chris@14 37 {
Chris@14 38 parent::open($savePath, $sessionName);
Chris@14 39
Chris@14 40 return $this->handler->open($savePath, $sessionName);
Chris@14 41 }
Chris@14 42
Chris@14 43 /**
Chris@14 44 * {@inheritdoc}
Chris@14 45 */
Chris@14 46 protected function doRead($sessionId)
Chris@14 47 {
Chris@14 48 return $this->handler->read($sessionId);
Chris@14 49 }
Chris@14 50
Chris@14 51 /**
Chris@14 52 * {@inheritdoc}
Chris@14 53 */
Chris@14 54 public function updateTimestamp($sessionId, $data)
Chris@14 55 {
Chris@14 56 return $this->write($sessionId, $data);
Chris@14 57 }
Chris@14 58
Chris@14 59 /**
Chris@14 60 * {@inheritdoc}
Chris@14 61 */
Chris@14 62 protected function doWrite($sessionId, $data)
Chris@14 63 {
Chris@14 64 return $this->handler->write($sessionId, $data);
Chris@14 65 }
Chris@14 66
Chris@14 67 /**
Chris@14 68 * {@inheritdoc}
Chris@14 69 */
Chris@14 70 public function destroy($sessionId)
Chris@14 71 {
Chris@14 72 $this->doDestroy = true;
Chris@14 73 $destroyed = parent::destroy($sessionId);
Chris@14 74
Chris@14 75 return $this->doDestroy ? $this->doDestroy($sessionId) : $destroyed;
Chris@14 76 }
Chris@14 77
Chris@14 78 /**
Chris@14 79 * {@inheritdoc}
Chris@14 80 */
Chris@14 81 protected function doDestroy($sessionId)
Chris@14 82 {
Chris@14 83 $this->doDestroy = false;
Chris@14 84
Chris@14 85 return $this->handler->destroy($sessionId);
Chris@14 86 }
Chris@14 87
Chris@14 88 /**
Chris@14 89 * {@inheritdoc}
Chris@14 90 */
Chris@14 91 public function close()
Chris@14 92 {
Chris@14 93 return $this->handler->close();
Chris@14 94 }
Chris@14 95
Chris@14 96 /**
Chris@14 97 * {@inheritdoc}
Chris@14 98 */
Chris@14 99 public function gc($maxlifetime)
Chris@14 100 {
Chris@14 101 return $this->handler->gc($maxlifetime);
Chris@14 102 }
Chris@14 103 }