Mercurial > hg > isophonics-drupal-site
comparison vendor/symfony/http-foundation/Session/Attribute/AttributeBag.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | 1fec387a4317 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4c8ae668cc8c |
---|---|
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\Attribute; | |
13 | |
14 /** | |
15 * This class relates to session attribute storage. | |
16 */ | |
17 class AttributeBag implements AttributeBagInterface, \IteratorAggregate, \Countable | |
18 { | |
19 private $name = 'attributes'; | |
20 | |
21 /** | |
22 * @var string | |
23 */ | |
24 private $storageKey; | |
25 | |
26 /** | |
27 * @var array | |
28 */ | |
29 protected $attributes = array(); | |
30 | |
31 /** | |
32 * Constructor. | |
33 * | |
34 * @param string $storageKey The key used to store attributes in the session | |
35 */ | |
36 public function __construct($storageKey = '_sf2_attributes') | |
37 { | |
38 $this->storageKey = $storageKey; | |
39 } | |
40 | |
41 /** | |
42 * {@inheritdoc} | |
43 */ | |
44 public function getName() | |
45 { | |
46 return $this->name; | |
47 } | |
48 | |
49 public function setName($name) | |
50 { | |
51 $this->name = $name; | |
52 } | |
53 | |
54 /** | |
55 * {@inheritdoc} | |
56 */ | |
57 public function initialize(array &$attributes) | |
58 { | |
59 $this->attributes = &$attributes; | |
60 } | |
61 | |
62 /** | |
63 * {@inheritdoc} | |
64 */ | |
65 public function getStorageKey() | |
66 { | |
67 return $this->storageKey; | |
68 } | |
69 | |
70 /** | |
71 * {@inheritdoc} | |
72 */ | |
73 public function has($name) | |
74 { | |
75 return array_key_exists($name, $this->attributes); | |
76 } | |
77 | |
78 /** | |
79 * {@inheritdoc} | |
80 */ | |
81 public function get($name, $default = null) | |
82 { | |
83 return array_key_exists($name, $this->attributes) ? $this->attributes[$name] : $default; | |
84 } | |
85 | |
86 /** | |
87 * {@inheritdoc} | |
88 */ | |
89 public function set($name, $value) | |
90 { | |
91 $this->attributes[$name] = $value; | |
92 } | |
93 | |
94 /** | |
95 * {@inheritdoc} | |
96 */ | |
97 public function all() | |
98 { | |
99 return $this->attributes; | |
100 } | |
101 | |
102 /** | |
103 * {@inheritdoc} | |
104 */ | |
105 public function replace(array $attributes) | |
106 { | |
107 $this->attributes = array(); | |
108 foreach ($attributes as $key => $value) { | |
109 $this->set($key, $value); | |
110 } | |
111 } | |
112 | |
113 /** | |
114 * {@inheritdoc} | |
115 */ | |
116 public function remove($name) | |
117 { | |
118 $retval = null; | |
119 if (array_key_exists($name, $this->attributes)) { | |
120 $retval = $this->attributes[$name]; | |
121 unset($this->attributes[$name]); | |
122 } | |
123 | |
124 return $retval; | |
125 } | |
126 | |
127 /** | |
128 * {@inheritdoc} | |
129 */ | |
130 public function clear() | |
131 { | |
132 $return = $this->attributes; | |
133 $this->attributes = array(); | |
134 | |
135 return $return; | |
136 } | |
137 | |
138 /** | |
139 * Returns an iterator for attributes. | |
140 * | |
141 * @return \ArrayIterator An \ArrayIterator instance | |
142 */ | |
143 public function getIterator() | |
144 { | |
145 return new \ArrayIterator($this->attributes); | |
146 } | |
147 | |
148 /** | |
149 * Returns the number of attributes. | |
150 * | |
151 * @return int The number of attributes | |
152 */ | |
153 public function count() | |
154 { | |
155 return count($this->attributes); | |
156 } | |
157 } |