Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
14 / 14
CRAP
100.00% covered (success)
100.00%
27 / 27
AttributeBag
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
14 / 14
17
100.00% covered (success)
100.00%
27 / 27
 __construct
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
2 / 2
 getName
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 setName
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
2 / 2
 initialize
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
2 / 2
 getStorageKey
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 has
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 get
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
1 / 1
 set
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
2 / 2
 all
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 replace
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
4 / 4
 remove
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
5 / 5
 clear
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
3 / 3
 getIterator
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 count
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
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
12namespace Symfony\Component\HttpFoundation\Session\Attribute;
13
14/**
15 * This class relates to session attribute storage.
16 */
17class 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}