class AutoExpireFlashBag

AutoExpireFlashBag flash message container.

@author Drak <drak@zikula.org>

Hierarchy

Expanded class hierarchy of AutoExpireFlashBag

1 file declares its use of AutoExpireFlashBag
AutoExpireFlashBagTest.php in drupal/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Tests/Session/Flash/AutoExpireFlashBagTest.php

File

drupal/core/vendor/symfony/http-foundation/Symfony/Component/HttpFoundation/Session/Flash/AutoExpireFlashBag.php, line 19

Namespace

Symfony\Component\HttpFoundation\Session\Flash
View source
class AutoExpireFlashBag implements FlashBagInterface {
  private $name = 'flashes';

  /**
   * Flash messages.
   *
   * @var array
   */
  private $flashes = array();

  /**
   * The storage key for flashes in the session
   *
   * @var string
   */
  private $storageKey;

  /**
   * Constructor.
   *
   * @param string $storageKey The key used to store flashes in the session.
   */
  public function __construct($storageKey = '_sf2_flashes') {
    $this->storageKey = $storageKey;
    $this->flashes = array(
      'display' => array(),
      'new' => array(),
    );
  }

  /**
   * {@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 = array(
      'new' => array(),
      '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();
  }

}

Members

Namesort descending Modifiers Type Description Overrides
AutoExpireFlashBag::$flashes private property Flash messages.
AutoExpireFlashBag::$name private property
AutoExpireFlashBag::$storageKey private property The storage key for flashes in the session
AutoExpireFlashBag::add public function Adds a flash message for type. Overrides FlashBagInterface::add
AutoExpireFlashBag::all public function Gets and clears flashes from the stack. Overrides FlashBagInterface::all
AutoExpireFlashBag::clear public function Clears out data from bag. Overrides SessionBagInterface::clear
AutoExpireFlashBag::get public function Gets and clears flash from the stack. Overrides FlashBagInterface::get
AutoExpireFlashBag::getName public function Gets this bag's name Overrides SessionBagInterface::getName
AutoExpireFlashBag::getStorageKey public function Gets the storage key for this bag. Overrides SessionBagInterface::getStorageKey
AutoExpireFlashBag::has public function Has flash messages for a given type? Overrides FlashBagInterface::has
AutoExpireFlashBag::initialize public function Initializes the Bag Overrides SessionBagInterface::initialize
AutoExpireFlashBag::keys public function Returns a list of all defined types. Overrides FlashBagInterface::keys
AutoExpireFlashBag::peek public function Gets flash messages for a given type. Overrides FlashBagInterface::peek
AutoExpireFlashBag::peekAll public function Gets all flash messages. Overrides FlashBagInterface::peekAll
AutoExpireFlashBag::set public function Registers a message for a given type. Overrides FlashBagInterface::set
AutoExpireFlashBag::setAll public function Sets all flash messages. Overrides FlashBagInterface::setAll
AutoExpireFlashBag::setName public function
AutoExpireFlashBag::__construct public function Constructor.