PK+M«ZNí¶î î FlashBag.phpnuW+A„¶ * * 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 */ class FlashBag implements FlashBagInterface { private string $name = 'flashes'; private array $flashes = []; private string $storageKey; /** * @param string $storageKey The key used to store flashes in the session */ public function __construct(string $storageKey = '_symfony_flashes') { $this->storageKey = $storageKey; } public function getName(): string { return $this->name; } /** * @return void */ public function setName(string $name) { $this->name = $name; } /** * @return void */ public function initialize(array &$flashes) { $this->flashes = &$flashes; } /** * @return void */ public function add(string $type, mixed $message) { $this->flashes[$type][] = $message; } public function peek(string $type, array $default = []): array { return $this->has($type) ? $this->flashes[$type] : $default; } public function peekAll(): array { return $this->flashes; } public function get(string $type, array $default = []): array { if (!$this->has($type)) { return $default; } $return = $this->flashes[$type]; unset($this->flashes[$type]); return $return; } public function all(): array { $return = $this->peekAll(); $this->flashes = []; return $return; } /** * @return void */ public function set(string $type, string|array $messages) { $this->flashes[$type] = (array) $messages; } /** * @return void */ public function setAll(array $messages) { $this->flashes = $messages; } public function has(string $type): bool { return \array_key_exists($type, $this->flashes) && $this->flashes[$type]; } public function keys(): array { return array_keys($this->flashes); } public function getStorageKey(): string { return $this->storageKey; } public function clear(): mixed { return $this->all(); } } PK+M«ZßþB ¿ ¿ AutoExpireFlashBag.phpnuW+A„¶ * * 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 */ class AutoExpireFlashBag implements FlashBagInterface { private string $name = 'flashes'; private array $flashes = ['display' => [], 'new' => []]; private string $storageKey; /** * @param string $storageKey The key used to store flashes in the session */ public function __construct(string $storageKey = '_symfony_flashes') { $this->storageKey = $storageKey; } public function getName(): string { return $this->name; } /** * @return void */ public function setName(string $name) { $this->name = $name; } /** * @return void */ 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'] : []; $this->flashes['new'] = []; } /** * @return void */ public function add(string $type, mixed $message) { $this->flashes['new'][$type][] = $message; } public function peek(string $type, array $default = []): array { return $this->has($type) ? $this->flashes['display'][$type] : $default; } public function peekAll(): array { return \array_key_exists('display', $this->flashes) ? $this->flashes['display'] : []; } public function get(string $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; } public function all(): array { $return = $this->flashes['display']; $this->flashes['display'] = []; return $return; } /** * @return void */ public function setAll(array $messages) { $this->flashes['new'] = $messages; } /** * @return void */ public function set(string $type, string|array $messages) { $this->flashes['new'][$type] = (array) $messages; } public function has(string $type): bool { return \array_key_exists($type, $this->flashes['display']) && $this->flashes['display'][$type]; } public function keys(): array { return array_keys($this->flashes['display']); } public function getStorageKey(): string { return $this->storageKey; } public function clear(): mixed { return $this->all(); } } PK+M«ZÏ+úTèèFlashBagInterface.phpnuW+A„¶ * * 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; use Symfony\Component\HttpFoundation\Session\SessionBagInterface; /** * FlashBagInterface. * * @author Drak */ interface FlashBagInterface extends SessionBagInterface { /** * Adds a flash message for the given type. * * @return void */ public function add(string $type, mixed $message); /** * Registers one or more messages for a given type. * * @return void */ public function set(string $type, string|array $messages); /** * Gets flash messages for a given type. * * @param string $type Message category type * @param array $default Default value if $type does not exist */ public function peek(string $type, array $default = []): array; /** * Gets all flash messages. */ public function peekAll(): array; /** * Gets and clears flash from the stack. * * @param array $default Default value if $type does not exist */ public function get(string $type, array $default = []): array; /** * Gets and clears flashes from the stack. */ public function all(): array; /** * Sets all flash messages. * * @return void */ public function setAll(array $messages); /** * Has flash messages for a given type? */ public function has(string $type): bool; /** * Returns a list of all defined types. */ public function keys(): array; } PK+M«ZNí¶î î FlashBag.phpnuW+A„¶PK+M«ZßþB ¿ ¿ * AutoExpireFlashBag.phpnuW+A„¶PK+M«ZÏ+úTèè/FlashBagInterface.phpnuW+A„¶PK÷\