Translated using Weblate (Portuguese)
[phpmyadmin.git] / src / FlashMessages.php
blob957542e8c03464e82803f1fd11d600ecc134aaa0
1 <?php
3 declare(strict_types=1);
5 namespace PhpMyAdmin;
7 use RuntimeException;
9 use function __;
11 final class FlashMessages
13 private const STORAGE_KEY = 'flashMessages';
15 /** @var mixed[] */
16 private array $storage;
18 /** @var array<string, string[]> */
19 private array $previousMessages = [];
21 public function __construct()
23 if (! isset($_SESSION)) {
24 throw new RuntimeException(__('Session not found.'));
27 $this->storage = &$_SESSION;
29 if (isset($this->storage[self::STORAGE_KEY])) {
30 $this->previousMessages = $this->storage[self::STORAGE_KEY];
33 $this->storage[self::STORAGE_KEY] = [];
36 public function addMessage(string $key, string $message): void
38 if (! isset($this->storage[self::STORAGE_KEY][$key])) {
39 $this->storage[self::STORAGE_KEY][$key] = [];
42 $this->storage[self::STORAGE_KEY][$key][] = $message;
45 /** @return string[]|null */
46 public function getMessage(string $key): array|null
48 return $this->previousMessages[$key] ?? null;
51 /** @return array<string, string[]> */
52 public function getMessages(): array
54 return $this->previousMessages;