2015-08-17 17:00:26 -07:00
< ? 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 .
*
* \IteratorAggregate implementation is deprecated and will be removed in 3.0 .
*
* @ author Drak < drak @ zikula . org >
*/
class FlashBag implements FlashBagInterface , \IteratorAggregate
{
private $name = 'flashes' ;
/**
* Flash messages .
*
* @ var array
*/
private $flashes = array ();
/**
* The storage key for flashes in the session .
*
* @ var string
*/
private $storageKey ;
/**
* Constructor .
*
2017-02-02 16:28:38 -08:00
* @ param string $storageKey The key used to store flashes in the session
2015-08-17 17:00:26 -07:00
*/
public function __construct ( $storageKey = '_sf2_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 ();
}
/**
* Returns an iterator for flashes .
*
* @ deprecated since version 2.4 , to be removed in 3.0 .
*
* @ return \ArrayIterator An \ArrayIterator instance
*/
public function getIterator ()
{
2015-08-27 12:03:05 -07:00
@ trigger_error ( 'The ' . __METHOD__ . ' method is deprecated since version 2.4 and will be removed in 3.0.' , E_USER_DEPRECATED );
2015-08-17 17:00:26 -07:00
return new \ArrayIterator ( $this -> all ());
}
}