* Add native property types Includes TypeHints.UnionTypeHintFormat Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * Set some default values for properties Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * Format and promote properties Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * Remove redundant asserts Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * Redundant cast Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * $tmanager->theme is never null Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * Redundant variable Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * Fix empty on $statementInfo bool Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * Redundant casts Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * Redundant issets Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * getPacked() returns nullable string Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * Redundant if Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * $this->content can be null Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * Simplify ThemeManager::getInstance() Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * Use isset for checking if property is initialized Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * Use nullable instead of uninitialized property Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * password is no longer nullable I can't verify that none of the globals ever tried to set it to null, but the variable should never be nullable. Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * Update baselines Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * $same_wide_width param can be float or int Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * Update Message.php Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * Cast Sub_part to int Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * Fix one line doc comments Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> --------- Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
57 lines
1.2 KiB
PHP
57 lines
1.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace PhpMyAdmin;
|
|
|
|
use RuntimeException;
|
|
|
|
use function __;
|
|
|
|
final class FlashMessages
|
|
{
|
|
private const STORAGE_KEY = 'flashMessages';
|
|
|
|
/** @var array */
|
|
private array $storage;
|
|
|
|
/** @var array<string, string[]> */
|
|
private array $previousMessages = [];
|
|
|
|
public function __construct()
|
|
{
|
|
if (! isset($_SESSION)) {
|
|
throw new RuntimeException(__('Session not found.'));
|
|
}
|
|
|
|
$this->storage = &$_SESSION;
|
|
|
|
if (isset($this->storage[self::STORAGE_KEY])) {
|
|
$this->previousMessages = $this->storage[self::STORAGE_KEY];
|
|
}
|
|
|
|
$this->storage[self::STORAGE_KEY] = [];
|
|
}
|
|
|
|
public function addMessage(string $key, string $message): void
|
|
{
|
|
if (! isset($this->storage[self::STORAGE_KEY][$key])) {
|
|
$this->storage[self::STORAGE_KEY][$key] = [];
|
|
}
|
|
|
|
$this->storage[self::STORAGE_KEY][$key][] = $message;
|
|
}
|
|
|
|
/** @return string[]|null */
|
|
public function getMessage(string $key): array|null
|
|
{
|
|
return $this->previousMessages[$key] ?? null;
|
|
}
|
|
|
|
/** @return array<string, string[]> */
|
|
public function getMessages(): array
|
|
{
|
|
return $this->previousMessages;
|
|
}
|
|
}
|