Subversion Repositories php-qbpwcf

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
3 liveuser 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 = [];
23
 
24
    /**
25
     * @param string $storageKey The key used to store attributes in the session
26
     */
27
    public function __construct(string $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(string $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(string $name)
65
    {
66
        return \array_key_exists($name, $this->attributes);
67
    }
68
 
69
    /**
70
     * {@inheritdoc}
71
     */
72
    public function get(string $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(string $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 = [];
99
        foreach ($attributes as $key => $value) {
100
            $this->set($key, $value);
101
        }
102
    }
103
 
104
    /**
105
     * {@inheritdoc}
106
     */
107
    public function remove(string $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 = [];
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
}