[ Index ] |
PHP Cross Reference of phpBB-3.2.11-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(self::CREATED => 0, self::UPDATED => 0, self::LIFETIME => 0); 43 44 /** 45 * Unix timestamp. 46 * 47 * @var int 48 */ 49 private $lastUsed; 50 51 /** 52 * @var int 53 */ 54 private $updateThreshold; 55 56 /** 57 * @param string $storageKey The key used to store bag in the session 58 * @param int $updateThreshold The time to wait between two UPDATED updates 59 */ 60 public function __construct($storageKey = '_sf2_meta', $updateThreshold = 0) 61 { 62 $this->storageKey = $storageKey; 63 $this->updateThreshold = $updateThreshold; 64 } 65 66 /** 67 * {@inheritdoc} 68 */ 69 public function initialize(array &$array) 70 { 71 $this->meta = &$array; 72 73 if (isset($array[self::CREATED])) { 74 $this->lastUsed = $this->meta[self::UPDATED]; 75 76 $timeStamp = time(); 77 if ($timeStamp - $array[self::UPDATED] >= $this->updateThreshold) { 78 $this->meta[self::UPDATED] = $timeStamp; 79 } 80 } else { 81 $this->stampCreated(); 82 } 83 } 84 85 /** 86 * Gets the lifetime that the session cookie was set with. 87 * 88 * @return int 89 */ 90 public function getLifetime() 91 { 92 return $this->meta[self::LIFETIME]; 93 } 94 95 /** 96 * Stamps a new session's metadata. 97 * 98 * @param int $lifetime Sets the cookie lifetime for the session cookie. A null value 99 * will leave the system settings unchanged, 0 sets the cookie 100 * to expire with browser session. Time is in seconds, and is 101 * not a Unix timestamp. 102 */ 103 public function stampNew($lifetime = null) 104 { 105 $this->stampCreated($lifetime); 106 } 107 108 /** 109 * {@inheritdoc} 110 */ 111 public function getStorageKey() 112 { 113 return $this->storageKey; 114 } 115 116 /** 117 * Gets the created timestamp metadata. 118 * 119 * @return int Unix timestamp 120 */ 121 public function getCreated() 122 { 123 return $this->meta[self::CREATED]; 124 } 125 126 /** 127 * Gets the last used metadata. 128 * 129 * @return int Unix timestamp 130 */ 131 public function getLastUsed() 132 { 133 return $this->lastUsed; 134 } 135 136 /** 137 * {@inheritdoc} 138 */ 139 public function clear() 140 { 141 // nothing to do 142 } 143 144 /** 145 * {@inheritdoc} 146 */ 147 public function getName() 148 { 149 return $this->name; 150 } 151 152 /** 153 * Sets name. 154 * 155 * @param string $name 156 */ 157 public function setName($name) 158 { 159 $this->name = $name; 160 } 161 162 private function stampCreated($lifetime = null) 163 { 164 $timeStamp = time(); 165 $this->meta[self::CREATED] = $this->meta[self::UPDATED] = $this->lastUsed = $timeStamp; 166 $this->meta[self::LIFETIME] = (null === $lifetime) ? ini_get('session.cookie_lifetime') : $lifetime; 167 } 168 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Nov 11 20:33:01 2020 | Cross-referenced by PHPXref 0.7.1 |