Seditio Source
Root |
./othercms/phpBB3/vendor/symfony/http-foundation/Session/Attribute/AttributeBag.php
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\HttpFoundation\Session\Attribute;

/**
 * This class relates to session attribute storage.
 */
class AttributeBag implements AttributeBagInterface, \IteratorAggregate, \Countable
{
    private
$name = 'attributes';
    private
$storageKey;

    protected
$attributes = [];

   
/**
     * @param string $storageKey The key used to store attributes in the session
     */
   
public function __construct($storageKey = '_sf2_attributes')
    {
       
$this->storageKey = $storageKey;
    }

   
/**
     * {@inheritdoc}
     */
   
public function getName()
    {
        return
$this->name;
    }

    public function
setName($name)
    {
       
$this->name = $name;
    }

   
/**
     * {@inheritdoc}
     */
   
public function initialize(array &$attributes)
    {
       
$this->attributes = &$attributes;
    }

   
/**
     * {@inheritdoc}
     */
   
public function getStorageKey()
    {
        return
$this->storageKey;
    }

   
/**
     * {@inheritdoc}
     */
   
public function has($name)
    {
        return \
array_key_exists($name, $this->attributes);
    }

   
/**
     * {@inheritdoc}
     */
   
public function get($name, $default = null)
    {
        return \
array_key_exists($name, $this->attributes) ? $this->attributes[$name] : $default;
    }

   
/**
     * {@inheritdoc}
     */
   
public function set($name, $value)
    {
       
$this->attributes[$name] = $value;
    }

   
/**
     * {@inheritdoc}
     */
   
public function all()
    {
        return
$this->attributes;
    }

   
/**
     * {@inheritdoc}
     */
   
public function replace(array $attributes)
    {
       
$this->attributes = [];
        foreach (
$attributes as $key => $value) {
           
$this->set($key, $value);
        }
    }

   
/**
     * {@inheritdoc}
     */
   
public function remove($name)
    {
       
$retval = null;
        if (\
array_key_exists($name, $this->attributes)) {
           
$retval = $this->attributes[$name];
            unset(
$this->attributes[$name]);
        }

        return
$retval;
    }

   
/**
     * {@inheritdoc}
     */
   
public function clear()
    {
       
$return = $this->attributes;
       
$this->attributes = [];

        return
$return;
    }

   
/**
     * Returns an iterator for attributes.
     *
     * @return \ArrayIterator An \ArrayIterator instance
     */
   
public function getIterator()
    {
        return new \
ArrayIterator($this->attributes);
    }

   
/**
     * Returns the number of attributes.
     *
     * @return int The number of attributes
     */
   
public function count()
    {
        return \
count($this->attributes);
    }
}