AttributeBag

class AttributeBag implements AttributeBagInterface, IteratorAggregate, Countable

This class relates to session attribute storage.

Properties

protected $attributes

Methods

public __construct(string $storageKey = '_sf2_attributes') No description
public string getName() Gets this bag's name.
public setName($name) No description
public initialize(array $attributes) Initializes the Bag.
public string getStorageKey() Gets the storage key for this bag.
public bool has(string $name) Checks if an attribute is defined.
public mixed get(string $name, mixed $default = null) Returns an attribute.
public set(string $name, mixed $value) Sets an attribute.
public array all() Returns attributes.
public replace(array $attributes) Sets attributes.
public mixed remove(string $name) Removes an attribute.
public mixed clear() Clears out data from bag.
public ArrayIterator getIterator() Returns an iterator for attributes.
public int count() Returns the number of attributes.

Details

at line 27

__construct()

public __construct(string $storageKey = '_sf2_attributes')

Parameters

string $storageKey The key used to store attributes in the session
at line 35

getName()

public string getName()

Gets this bag's name.

Return Value

string
at line 40

setName()

public setName($name)

Parameters

$name
at line 48

initialize()

public initialize(array $attributes)

Initializes the Bag.

Parameters

array $attributes
at line 56

getStorageKey()

public string getStorageKey()

Gets the storage key for this bag.

Return Value

string
at line 64

has()

public bool has(string $name)

Checks if an attribute is defined.

Parameters

string $name The attribute name

Return Value

bool true if the attribute is defined, false otherwise
at line 72

get()

public mixed get(string $name, mixed $default = null)

Returns an attribute.

Parameters

string $name The attribute name
mixed $default The default value if not found

Return Value

mixed
at line 80

set()

public set(string $name, mixed $value)

Sets an attribute.

Parameters

string $name
mixed $value
at line 88

all()

public array all()

Returns attributes.

Return Value

array Attributes
at line 96

replace()

public replace(array $attributes)

Sets attributes.

Parameters

array $attributes Attributes
at line 107

remove()

public mixed remove(string $name)

Removes an attribute.

Parameters

string $name

Return Value

mixed The removed value or null when it does not exist
at line 121

clear()

public mixed clear()

Clears out data from bag.

Return Value

mixed Whatever data was contained
at line 134

getIterator()

public ArrayIterator getIterator()

Returns an iterator for attributes.

Return Value

ArrayIterator An \ArrayIterator instance
at line 144

count()

public int count()

Returns the number of attributes.

Return Value

int The number of attributes

Source code

<?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 = array();

    /**
     * @param string $storageKey The key used to store attributes in the session
     */
    public function __construct(string $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 = array();
        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 = array();

        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);
    }
}