comparison vendor/symfony/http-foundation/Session/Attribute/AttributeBag.php @ 0:c75dbcec494b

Initial commit from drush-created site
author Chris Cannam
date Thu, 05 Jul 2018 14:24:15 +0000
parents
children a9cd425dd02b
comparison
equal deleted inserted replaced
-1:000000000000 0:c75dbcec494b
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 private $storageKey;
21
22 protected $attributes = array();
23
24 /**
25 * @param string $storageKey The key used to store attributes in the session
26 */
27 public function __construct($storageKey = '_sf2_attributes')
28 {
29 $this->storageKey = $storageKey;
30 }
31
32 /**
33 * {@inheritdoc}
34 */
35 public function getName()
36 {
37 return $this->name;
38 }
39
40 public function setName($name)
41 {
42 $this->name = $name;
43 }
44
45 /**
46 * {@inheritdoc}
47 */
48 public function initialize(array &$attributes)
49 {
50 $this->attributes = &$attributes;
51 }
52
53 /**
54 * {@inheritdoc}
55 */
56 public function getStorageKey()
57 {
58 return $this->storageKey;
59 }
60
61 /**
62 * {@inheritdoc}
63 */
64 public function has($name)
65 {
66 return array_key_exists($name, $this->attributes);
67 }
68
69 /**
70 * {@inheritdoc}
71 */
72 public function get($name, $default = null)
73 {
74 return array_key_exists($name, $this->attributes) ? $this->attributes[$name] : $default;
75 }
76
77 /**
78 * {@inheritdoc}
79 */
80 public function set($name, $value)
81 {
82 $this->attributes[$name] = $value;
83 }
84
85 /**
86 * {@inheritdoc}
87 */
88 public function all()
89 {
90 return $this->attributes;
91 }
92
93 /**
94 * {@inheritdoc}
95 */
96 public function replace(array $attributes)
97 {
98 $this->attributes = array();
99 foreach ($attributes as $key => $value) {
100 $this->set($key, $value);
101 }
102 }
103
104 /**
105 * {@inheritdoc}
106 */
107 public function remove($name)
108 {
109 $retval = null;
110 if (array_key_exists($name, $this->attributes)) {
111 $retval = $this->attributes[$name];
112 unset($this->attributes[$name]);
113 }
114
115 return $retval;
116 }
117
118 /**
119 * {@inheritdoc}
120 */
121 public function clear()
122 {
123 $return = $this->attributes;
124 $this->attributes = array();
125
126 return $return;
127 }
128
129 /**
130 * Returns an iterator for attributes.
131 *
132 * @return \ArrayIterator An \ArrayIterator instance
133 */
134 public function getIterator()
135 {
136 return new \ArrayIterator($this->attributes);
137 }
138
139 /**
140 * Returns the number of attributes.
141 *
142 * @return int The number of attributes
143 */
144 public function count()
145 {
146 return count($this->attributes);
147 }
148 }