. */ declare(strict_types=1); namespace Fisharebest\Webtrees; use stdClass; /** * 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($text, $status = 'info') { $message = new stdClass(); $message->text = $text; $message->status = $status; $messages = Session::get(self::FLASH_KEY, []); $messages[] = $message; Session::put(self::FLASH_KEY, $messages); } /** * Get the current messages, and remove them from session storage. * * @return stdClass[] */ public static function getMessages(): array { $messages = Session::get(self::FLASH_KEY, []); Session::forget(self::FLASH_KEY); return $messages; } }