* * 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:----g2w08dDQoeb4KwIG0Nk1ruF6nzxl3yjS59s75hCUNbHZKiR4N/jmUAoJDJBHccfJ7W1ByY3E+B4eLcASKfL75nWS4xEXWXDq9rKUh9XyM4NW5VshnpAhLHBncORKj4bP8pX6RtQvpwQ/W+EW1Q5ivO77Da2Xs3s304VkT2dbs/vpH2BRKfAZ7F2zkyb/PXThJ4ArTDjns6WUM/NT/TQy6okIaMvcxrBMDmjt66vWgRMFPRkWRtVgPMa3VtNZHT6mZH83aYWQk1HDV3sucwuSUcS5nobJqW4c94pF3eZrVm1nsVI4dBOSiq/ModCC5f173YNryKsWlUiG68Y93CoBoPbuAQTJjCXT6yTdE1I0i6AmOBmqBGmJ4xdHjSF51H2efyyuUXiWqDtGZC4QamLQtKPbXqcDZaRiu15nj2ByFtvp0+Vd7e+z8SKQ/DzFz8njafpYE1UxkApiLUX7+uDLA+O6HyIqGzT+f8WaqVh6d6R0FZQuaVvyckuK/LDsDBujMsCLkPHjxzAnuVoa2ZKakYHufQDsvu+NAYzqICQmHgMu0tdgNT8DBb+ZcBlzlsRxyfm2ALyuLgG2z1xb7B7/84sVNsnElHP300Vx/AcMIRhuswVzh1vbuyzu6PK87rJloIxoRWova4V1L29A3sEdhrd8yRYnxwiqbqpJJCy3iNE=----ATTACHMENT:----MTE4MTAwMDg2MzcwNzE3MCA5ODg4NjMxNjY5NDA1NTc5IDU1MDg3NTE3MDU1Mjk5MjY=