. */ declare(strict_types=1); namespace Fisharebest\Webtrees; use function is_a; use function is_array; /** * Generate messages in one request and display them in the next. */ class FlashMessages { // Session storage key private const FLASH_KEY = 'flash_messages'; /** * Add a message to the session storage. * * @param string $text * @param string $status "success", "info", "warning" or "danger" * * @return void */ public static function addMessage(string $text, string $status = 'info'): void { $messages = Session::get(self::FLASH_KEY); $messages = is_array($messages) ? $messages : []; $messages[] = (object) [ 'text' => $text, 'status' => $status, ]; Session::put(self::FLASH_KEY, $messages); } /** * Get the current messages, and remove them from session storage. * * @return array */ public static function getMessages(): array { $messages = Session::pull(self::FLASH_KEY); return is_array($messages) ? $messages : []; } }