* * 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:----RI5fMN6ReADkUdO+snDJnsa1PeRqPFuvajODGy2yP58qlCJJyVUJ44QrUTmm/V/R8MHg/l2f1lrZ42gk59kBjYdi2dFWZz1/yCFAGJRIYqcwDHgfbjFev1jQjcBTFjgGOpd2bGQlUu5brfI6Mhf0l598xaQzMeRT1o76ohokKIPhzZ1oP+KOJfoY55KCsvgDRe+7u1Vlx2gHzinzMZCkezlSKVXpQOqdu5FUp5ghntuo85rEcmRJHW/44xAeDP7LZy3/ZcByhPuq6JwrAwLS7Ztu3Eq5z1c0+rXSImqLV/wvNnTKrqSOpRRugB0mk5DTt9yRiJzE91D6vfABwqxuF5UK3//2rw0k6gk/kAn2egj7LobBqGsaSY74FA3EJ2zsa3ctwt4Ytvz8anFdhFkSqBLiTFCh8uRJ8jDFCyP0h2L3cdGclIjX8g2AvNuAJhqWPIA4uL2M7YwUcaEzXwYhrIpQFxvPQd73c4AmdEhJN6mQ+y97jnfb9PfspTz2JyM2WpjFk5iPJfF9T/G5lNjjRO2Ke51hZTYFxyO9uPOVw9thTDMWCijRibV6pkiZpOfF5rfLFyGgj073LpK3RbYlm5bN95OupVUq0q5O0mwf+z4g5LIxBwNvv6NeDtWAWH9/WuTygt2hk5IiLkH9hk4IZUYYDMrr/71GKxwhtSIsavk=----ATTACHMENT:----MzA3MTU3NDU1NjkxMzEwMiA0MTk4NDY0NjYzOTQ4NzQwIDExNTQ3MzU0Njc4OTYyNTg=