AutoExpireFlashBag

class AutoExpireFlashBag implements FlashBagInterface

AutoExpireFlashBag 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 setAll(array $messages) Sets all flash messages.
public set(string $type, $messages) Registers a message for a given type.
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 63

add()

public add(string $type, string $message)

Adds a flash message for type.

Parameters

string $type
string $message
at line 71

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 79

peekAll()

public array peekAll()

Gets all flash messages.

Return Value

array
at line 87

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 106

all()

public array all()

Gets and clears flashes from the stack.

Return Value

array
at line 117

setAll()

public setAll(array $messages)

Sets all flash messages.

Parameters

array $messages
at line 125

set()

public set(string $type, $messages)

Registers a message for a given type.

Parameters

string $type
$messages
at line 133

has()

public bool has(string $type)

Has flash messages for a given type?

Parameters

string $type

Return Value

bool
at line 141

keys()

public array keys()

Returns a list of all defined types.

Return Value

array
at line 149

getStorageKey()

public string getStorageKey()

Gets the storage key for this bag.

Return Value

string
at line 157

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;

/**
 * AutoExpireFlashBag flash message container.
 *
 * @author Drak <drak@zikula.org>
 */
class AutoExpireFlashBag implements FlashBagInterface
{
    private $name = 'flashes';
    private $flashes = array('display' => array(), 'new' => 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;

        // The logic: messages from the last request will be stored in new, so we move them to previous
        // This request we will show what is in 'display'.  What is placed into 'new' this time round will
        // be moved to display next time round.
        $this->flashes['display'] = array_key_exists('new', $this->flashes) ? $this->flashes['new'] : array();
        $this->flashes['new'] = array();
    }

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

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

    /**
     * {@inheritdoc}
     */
    public function peekAll()
    {
        return array_key_exists('display', $this->flashes) ? (array) $this->flashes['display'] : array();
    }

    /**
     * {@inheritdoc}
     */
    public function get($type, array $default = array())
    {
        $return = $default;

        if (!$this->has($type)) {
            return $return;
        }

        if (isset($this->flashes['display'][$type])) {
            $return = $this->flashes['display'][$type];
            unset($this->flashes['display'][$type]);
        }

        return $return;
    }

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

        return $return;
    }

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

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

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

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

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

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