# FlashBag

class FlashBag implements FlashBagInterface

FlashBag flash message container.

## Methods

`public` | `` | `__construct(string $storageKey = '_symfony_flashes')` | No description |
`public` | `string` | `getName()` | Gets this bag's name. |
`public` | `` | `setName($name)` | No description |
`public` | `` | `initialize(array $flashes)` | Initializes the Bag. |
`public` | `` | `add(string $type, string $message)` | Adds a flash message for type. |
`public` | `array` | `peek(string $type, array $default = array())` | Gets flash messages for a given type. |
`public` | `array` | `peekAll()` | Gets all flash messages. |
`public` | `array` | `get(string $type, array $default = array())` | Gets and clears flash from the stack. |
`public` | `array` | `all()` | Gets and clears flashes from the stack. |
`public` | `` | `set(string $type, $messages)` | Registers a message for a given type. |
`public` | `` | `setAll(array $messages)` | Sets all flash messages. |
`public` | `bool` | `has(string $type)` | Has flash messages for a given type? |
`public` | `array` | `keys()` | Returns a list of all defined types. |
`public` | `string` | `getStorageKey()` | Gets the storage key for this bag. |
`public` | `mixed` | `clear()` | Clears out data from bag. |

## Details

at line 28

### `__construct()`

`public __construct(string $storageKey = '_symfony_flashes')`

#### Parameters

`string` | `$storageKey` | The key used to store flashes in the session

at line 36

### `getName()`

`public string getName()`

Gets this bag's name.

#### Return Value

`string` |

at line 41

### `setName()`

`public setName($name)`

#### Parameters

| `$name` |

at line 49

### `initialize()`

`public initialize(array $flashes)`

Initializes the Bag.

#### Parameters

`array` | `$flashes` |

at line 57

### `add()`

`public add(string $type, string $message)`

Adds a flash message for type.

#### Parameters

`string` | `$type` |
`string` | `$message` |

at line 65

### `peek()`

`public array peek(string $type, array $default = array())`

Gets flash messages for a given type.

#### Parameters

`string` | `$type` | Message category type
`array` | `$default` | Default value if $type does not exist

#### Return Value

`array` |

at line 73

### `peekAll()`

`public array peekAll()`

Gets all flash messages.

#### Return Value

`array` |

at line 81

### `get()`

`public array get(string $type, array $default = array())`

Gets and clears flash from the stack.

#### Parameters

`string` | `$type` |
`array` | `$default` | Default value if $type does not exist

#### Return Value

`array` |

at line 97

### `all()`

`public array all()`

Gets and clears flashes from the stack.

#### Return Value

`array` |

at line 108

### `set()`

`public set(string $type, $messages)`

Registers a message for a given type.

#### Parameters

`string` | `$type` |
| `$messages` |

at line 116

### `setAll()`

`public setAll(array $messages)`

Sets all flash messages.

#### Parameters

`array` | `$messages` |

at line 124

### `has()`

`public bool has(string $type)`

Has flash messages for a given type?

#### Parameters

`string` | `$type` |

#### Return Value

`bool` |

at line 132

### `keys()`

`public array keys()`

Returns a list of all defined types.

#### Return Value

`array` |

at line 140

### `getStorageKey()`

`public string getStorageKey()`

Gets the storage key for this bag.

#### Return Value

`string` |

at line 148

### `clear()`

`public mixed clear()`

Clears out data from bag.

#### Return Value

`mixed` | Whatever data was contained

## 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\Flash;

    /**
     * FlashBag flash message container.
     *
     * @author Drak <drak@zikula.org>
     */
    class FlashBag implements FlashBagInterface
    {
        private $name = 'flashes';
        private $flashes = array();
        private $storageKey;

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

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

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

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

        /**
         * {@inheritdoc}
         */
        public function add($type, $message)
        {
            $this->flashes[$type][] = $message;
        }

        /**
         * {@inheritdoc}
         */
        public function peek($type, array $default = array())
        {
            return $this->has($type) ? $this->flashes[$type] : $default;
        }

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

        /**
         * {@inheritdoc}
         */
        public function get($type, array $default = array())
        {
            if (!$this->has($type)) {
                return $default;
            }

            $return = $this->flashes[$type];

            unset($this->flashes[$type]);

            return $return;
        }

        /**
         * {@inheritdoc}
         */
        public function all()
        {
            $return = $this->peekAll();
            $this->flashes = array();

            return $return;
        }

        /**
         * {@inheritdoc}
         */
        public function set($type, $messages)
        {
            $this->flashes[$type] = (array) $messages;
        }

        /**
         * {@inheritdoc}
         */
        public function setAll(array $messages)
        {
            $this->flashes = $messages;
        }

        /**
         * {@inheritdoc}
         */
        public function has($type)
        {
            return array_key_exists($type, $this->flashes) && $this->flashes[$type];
        }

        /**
         * {@inheritdoc}
         */
        public function keys()
        {
            return array_keys($this->flashes);
        }

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

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