[ 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; 13 14 use Symfony\Component\HttpFoundation\Session\SessionBagInterface; 15 16 /** 17 * Metadata container. 18 * 19 * Adds metadata to the session. 20 * 21 * @author Drak <drak@zikula.org> 22 */ 23 class MetadataBag implements SessionBagInterface 24 { 25 const CREATED = 'c'; 26 const UPDATED = 'u'; 27 const LIFETIME = 'l'; 28 29 /** 30 * @var string 31 */ 32 private $name = '__metadata'; 33 34 /** 35 * @var string 36 */ 37 private $storageKey; 38 39 /** 40 * @var array 41 */ 42 protected $meta = array(); 43 44 /** 45 * Unix timestamp. 46 * 47 * @var int 48 */ 49 private $lastUsed; 50 51 /** 52 * Constructor. 53 * 54 * @param string $storageKey The key used to store bag in the session. 55 */ 56 public function __construct($storageKey = '_sf2_meta') 57 { 58 $this->storageKey = $storageKey; 59 $this->meta = array(self::CREATED => 0, self::UPDATED => 0, self::LIFETIME => 0); 60 } 61 62 /** 63 * {@inheritdoc} 64 */ 65 public function initialize(array &$array) 66 { 67 $this->meta = &$array; 68 69 if (isset($array[self::CREATED])) { 70 $this->lastUsed = $this->meta[self::UPDATED]; 71 $this->meta[self::UPDATED] = time(); 72 } else { 73 $this->stampCreated(); 74 } 75 } 76 77 /** 78 * Gets the lifetime that the session cookie was set with. 79 * 80 * @return int 81 */ 82 public function getLifetime() 83 { 84 return $this->meta[self::LIFETIME]; 85 } 86 87 /** 88 * Stamps a new session's metadata. 89 * 90 * @param int $lifetime Sets the cookie lifetime for the session cookie. A null value 91 * will leave the system settings unchanged, 0 sets the cookie 92 * to expire with browser session. Time is in seconds, and is 93 * not a Unix timestamp. 94 */ 95 public function stampNew($lifetime = null) 96 { 97 $this->stampCreated($lifetime); 98 } 99 100 /** 101 * {@inheritdoc} 102 */ 103 public function getStorageKey() 104 { 105 return $this->storageKey; 106 } 107 108 /** 109 * Gets the created timestamp metadata. 110 * 111 * @return int Unix timestamp 112 */ 113 public function getCreated() 114 { 115 return $this->meta[self::CREATED]; 116 } 117 118 /** 119 * Gets the last used metadata. 120 * 121 * @return int Unix timestamp 122 */ 123 public function getLastUsed() 124 { 125 return $this->lastUsed; 126 } 127 128 /** 129 * {@inheritdoc} 130 */ 131 public function clear() 132 { 133 // nothing to do 134 } 135 136 /** 137 * {@inheritdoc} 138 */ 139 public function getName() 140 { 141 return $this->name; 142 } 143 144 /** 145 * Sets name. 146 * 147 * @param string $name 148 */ 149 public function setName($name) 150 { 151 $this->name = $name; 152 } 153 154 private function stampCreated($lifetime = null) 155 { 156 $timeStamp = time(); 157 $this->meta[self::CREATED] = $this->meta[self::UPDATED] = $this->lastUsed = $timeStamp; 158 $this->meta[self::LIFETIME] = (null === $lifetime) ? ini_get('session.cookie_lifetime') : $lifetime; 159 } 160 }
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 |