true, 'samesite' => 'Lax', 'secure' => (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off'), 'path' => '/', ]); session_start(); } } public function get(string $key, mixed $default = null): mixed { return $_SESSION[$key] ?? $default; } public function put(string $key, mixed $value): void { $_SESSION[$key] = $value; } public function forget(string $key): void { unset($_SESSION[$key]); } public function flash(string $key, mixed $value): void { $_SESSION['_flash'][$key] = $value; } public function pullFlash(string $key, mixed $default = null): mixed { $value = $_SESSION['_flash'][$key] ?? $default; unset($_SESSION['_flash'][$key]); return $value; } public function regenerate(): void { session_regenerate_id(true); } public function invalidate(): void { $_SESSION = []; if (session_status() === PHP_SESSION_ACTIVE) { session_destroy(); } } }