annotate vendor/symfony/http-foundation/Session/Attribute/AttributeBag.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents af1871eacc83
children
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 /*
Chris@0 4 * This file is part of the Symfony package.
Chris@0 5 *
Chris@0 6 * (c) Fabien Potencier <fabien@symfony.com>
Chris@0 7 *
Chris@0 8 * For the full copyright and license information, please view the LICENSE
Chris@0 9 * file that was distributed with this source code.
Chris@0 10 */
Chris@0 11
Chris@0 12 namespace Symfony\Component\HttpFoundation\Session\Attribute;
Chris@0 13
Chris@0 14 /**
Chris@0 15 * This class relates to session attribute storage.
Chris@0 16 */
Chris@0 17 class AttributeBag implements AttributeBagInterface, \IteratorAggregate, \Countable
Chris@0 18 {
Chris@0 19 private $name = 'attributes';
Chris@0 20 private $storageKey;
Chris@0 21
Chris@17 22 protected $attributes = [];
Chris@0 23
Chris@0 24 /**
Chris@0 25 * @param string $storageKey The key used to store attributes in the session
Chris@0 26 */
Chris@0 27 public function __construct($storageKey = '_sf2_attributes')
Chris@0 28 {
Chris@0 29 $this->storageKey = $storageKey;
Chris@0 30 }
Chris@0 31
Chris@0 32 /**
Chris@0 33 * {@inheritdoc}
Chris@0 34 */
Chris@0 35 public function getName()
Chris@0 36 {
Chris@0 37 return $this->name;
Chris@0 38 }
Chris@0 39
Chris@0 40 public function setName($name)
Chris@0 41 {
Chris@0 42 $this->name = $name;
Chris@0 43 }
Chris@0 44
Chris@0 45 /**
Chris@0 46 * {@inheritdoc}
Chris@0 47 */
Chris@0 48 public function initialize(array &$attributes)
Chris@0 49 {
Chris@0 50 $this->attributes = &$attributes;
Chris@0 51 }
Chris@0 52
Chris@0 53 /**
Chris@0 54 * {@inheritdoc}
Chris@0 55 */
Chris@0 56 public function getStorageKey()
Chris@0 57 {
Chris@0 58 return $this->storageKey;
Chris@0 59 }
Chris@0 60
Chris@0 61 /**
Chris@0 62 * {@inheritdoc}
Chris@0 63 */
Chris@0 64 public function has($name)
Chris@0 65 {
Chris@18 66 return \array_key_exists($name, $this->attributes);
Chris@0 67 }
Chris@0 68
Chris@0 69 /**
Chris@0 70 * {@inheritdoc}
Chris@0 71 */
Chris@0 72 public function get($name, $default = null)
Chris@0 73 {
Chris@18 74 return \array_key_exists($name, $this->attributes) ? $this->attributes[$name] : $default;
Chris@0 75 }
Chris@0 76
Chris@0 77 /**
Chris@0 78 * {@inheritdoc}
Chris@0 79 */
Chris@0 80 public function set($name, $value)
Chris@0 81 {
Chris@0 82 $this->attributes[$name] = $value;
Chris@0 83 }
Chris@0 84
Chris@0 85 /**
Chris@0 86 * {@inheritdoc}
Chris@0 87 */
Chris@0 88 public function all()
Chris@0 89 {
Chris@0 90 return $this->attributes;
Chris@0 91 }
Chris@0 92
Chris@0 93 /**
Chris@0 94 * {@inheritdoc}
Chris@0 95 */
Chris@0 96 public function replace(array $attributes)
Chris@0 97 {
Chris@17 98 $this->attributes = [];
Chris@0 99 foreach ($attributes as $key => $value) {
Chris@0 100 $this->set($key, $value);
Chris@0 101 }
Chris@0 102 }
Chris@0 103
Chris@0 104 /**
Chris@0 105 * {@inheritdoc}
Chris@0 106 */
Chris@0 107 public function remove($name)
Chris@0 108 {
Chris@0 109 $retval = null;
Chris@18 110 if (\array_key_exists($name, $this->attributes)) {
Chris@0 111 $retval = $this->attributes[$name];
Chris@0 112 unset($this->attributes[$name]);
Chris@0 113 }
Chris@0 114
Chris@0 115 return $retval;
Chris@0 116 }
Chris@0 117
Chris@0 118 /**
Chris@0 119 * {@inheritdoc}
Chris@0 120 */
Chris@0 121 public function clear()
Chris@0 122 {
Chris@0 123 $return = $this->attributes;
Chris@17 124 $this->attributes = [];
Chris@0 125
Chris@0 126 return $return;
Chris@0 127 }
Chris@0 128
Chris@0 129 /**
Chris@0 130 * Returns an iterator for attributes.
Chris@0 131 *
Chris@0 132 * @return \ArrayIterator An \ArrayIterator instance
Chris@0 133 */
Chris@0 134 public function getIterator()
Chris@0 135 {
Chris@0 136 return new \ArrayIterator($this->attributes);
Chris@0 137 }
Chris@0 138
Chris@0 139 /**
Chris@0 140 * Returns the number of attributes.
Chris@0 141 *
Chris@0 142 * @return int The number of attributes
Chris@0 143 */
Chris@0 144 public function count()
Chris@0 145 {
Chris@17 146 return \count($this->attributes);
Chris@0 147 }
Chris@0 148 }