[ Index ] |
PHP Cross Reference of phpBB-3.1.12-deutsch |
[Summary view] [Print] [Text view]
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 /** 15 * MemcachedSessionHandler. 16 * 17 * Memcached based session storage handler based on the Memcached class 18 * provided by the PHP memcached extension. 19 * 20 * @see http://php.net/memcached 21 * 22 * @author Drak <drak@zikula.org> 23 */ 24 class MemcachedSessionHandler implements \SessionHandlerInterface 25 { 26 /** 27 * @var \Memcached Memcached driver. 28 */ 29 private $memcached; 30 31 /** 32 * @var int Time to live in seconds 33 */ 34 private $ttl; 35 36 /** 37 * @var string Key prefix for shared environments. 38 */ 39 private $prefix; 40 41 /** 42 * Constructor. 43 * 44 * List of available options: 45 * * prefix: The prefix to use for the memcached keys in order to avoid collision 46 * * expiretime: The time to live in seconds 47 * 48 * @param \Memcached $memcached A \Memcached instance 49 * @param array $options An associative array of Memcached options 50 * 51 * @throws \InvalidArgumentException When unsupported options are passed 52 */ 53 public function __construct(\Memcached $memcached, array $options = array()) 54 { 55 $this->memcached = $memcached; 56 57 if ($diff = array_diff(array_keys($options), array('prefix', 'expiretime'))) { 58 throw new \InvalidArgumentException(sprintf( 59 'The following options are not supported "%s"', implode(', ', $diff) 60 )); 61 } 62 63 $this->ttl = isset($options['expiretime']) ? (int) $options['expiretime'] : 86400; 64 $this->prefix = isset($options['prefix']) ? $options['prefix'] : 'sf2s'; 65 } 66 67 /** 68 * {@inheritdoc} 69 */ 70 public function open($savePath, $sessionName) 71 { 72 return true; 73 } 74 75 /** 76 * {@inheritdoc} 77 */ 78 public function close() 79 { 80 return true; 81 } 82 83 /** 84 * {@inheritdoc} 85 */ 86 public function read($sessionId) 87 { 88 return $this->memcached->get($this->prefix.$sessionId) ?: ''; 89 } 90 91 /** 92 * {@inheritdoc} 93 */ 94 public function write($sessionId, $data) 95 { 96 return $this->memcached->set($this->prefix.$sessionId, $data, time() + $this->ttl); 97 } 98 99 /** 100 * {@inheritdoc} 101 */ 102 public function destroy($sessionId) 103 { 104 return $this->memcached->delete($this->prefix.$sessionId); 105 } 106 107 /** 108 * {@inheritdoc} 109 */ 110 public function gc($maxlifetime) 111 { 112 // not required here because memcached will auto expire the records anyhow. 113 return true; 114 } 115 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Thu Jan 11 00:25:41 2018 | Cross-referenced by PHPXref 0.7.1 |