[ Index ]

PHP Cross Reference of phpBB-3.3.14-deutsch

title

Body

[close]

/vendor/symfony/http-foundation/Session/Storage/Handler/ -> MemcacheSessionHandler.php (source)

   1  <?php
   2  
   3  /*
   4   * This file is part of the Symfony package.
   5   *
   6   * (c) Fabien Potencier <fabien@symfony.com>
   7   *
   8   * For the full copyright and license information, please view the LICENSE
   9   * file that was distributed with this source code.
  10   */
  11  
  12  namespace Symfony\Component\HttpFoundation\Session\Storage\Handler;
  13  
  14  @trigger_error(sprintf('The class %s is deprecated since Symfony 3.4 and will be removed in 4.0. Use Symfony\Component\HttpFoundation\Session\Storage\Handler\MemcachedSessionHandler instead.', MemcacheSessionHandler::class), \E_USER_DEPRECATED);
  15  
  16  /**
  17   * @author Drak <drak@zikula.org>
  18   *
  19   * @deprecated since version 3.4, to be removed in 4.0. Use Symfony\Component\HttpFoundation\Session\Storage\Handler\MemcachedSessionHandler instead.
  20   */
  21  class MemcacheSessionHandler implements \SessionHandlerInterface
  22  {
  23      private $memcache;
  24  
  25      /**
  26       * @var int Time to live in seconds
  27       */
  28      private $ttl;
  29  
  30      /**
  31       * @var string Key prefix for shared environments
  32       */
  33      private $prefix;
  34  
  35      /**
  36       * Constructor.
  37       *
  38       * List of available options:
  39       *  * prefix: The prefix to use for the memcache keys in order to avoid collision
  40       *  * expiretime: The time to live in seconds
  41       *
  42       * @param \Memcache $memcache A \Memcache instance
  43       * @param array     $options  An associative array of Memcache options
  44       *
  45       * @throws \InvalidArgumentException When unsupported options are passed
  46       */
  47      public function __construct(\Memcache $memcache, array $options = [])
  48      {
  49          if ($diff = array_diff(array_keys($options), ['prefix', 'expiretime'])) {
  50              throw new \InvalidArgumentException(sprintf('The following options are not supported "%s".', implode(', ', $diff)));
  51          }
  52  
  53          $this->memcache = $memcache;
  54          $this->ttl = isset($options['expiretime']) ? (int) $options['expiretime'] : 86400;
  55          $this->prefix = isset($options['prefix']) ? $options['prefix'] : 'sf2s';
  56      }
  57  
  58      /**
  59       * {@inheritdoc}
  60       */
  61      public function open($savePath, $sessionName)
  62      {
  63          return true;
  64      }
  65  
  66      /**
  67       * {@inheritdoc}
  68       */
  69      public function close()
  70      {
  71          return true;
  72      }
  73  
  74      /**
  75       * {@inheritdoc}
  76       */
  77      public function read($sessionId)
  78      {
  79          return $this->memcache->get($this->prefix.$sessionId) ?: '';
  80      }
  81  
  82      /**
  83       * {@inheritdoc}
  84       */
  85      public function write($sessionId, $data)
  86      {
  87          return $this->memcache->set($this->prefix.$sessionId, $data, 0, time() + $this->ttl);
  88      }
  89  
  90      /**
  91       * {@inheritdoc}
  92       */
  93      public function destroy($sessionId)
  94      {
  95          $this->memcache->delete($this->prefix.$sessionId);
  96  
  97          return true;
  98      }
  99  
 100      /**
 101       * {@inheritdoc}
 102       */
 103      public function gc($maxlifetime)
 104      {
 105          // not required here because memcache will auto expire the records anyhow.
 106          return true;
 107      }
 108  
 109      /**
 110       * Return a Memcache instance.
 111       *
 112       * @return \Memcache
 113       */
 114      protected function getMemcache()
 115      {
 116          return $this->memcache;
 117      }
 118  }


Generated: Mon Nov 25 19:05:08 2024 Cross-referenced by PHPXref 0.7.1