$type, 'message' => $message]; } /** * Flash-Messages abrufen & löschen * * @return array */ function getFlashes(): array { if (session_status() !== PHP_SESSION_ACTIVE) { session_start(); } $messages = $_SESSION[FLASH_SESSION_KEY] ?? []; unset($_SESSION[FLASH_SESSION_KEY]); return $messages; } /* ========================= * Request Helper * ========================= */ /** * POST-Wert holen * * @param string $key * @param mixed $default * @return mixed */ function post(string $key, $default = null) { return $_POST[$key] ?? $default; } /** * GET-Wert holen * * @param string $key * @param mixed $default * @return mixed */ function get(string $key, $default = null) { return $_GET[$key] ?? $default; } /** * Prüfen, ob Request POST ist * * @return bool */ function isPost(): bool { return ($_SERVER['REQUEST_METHOD'] ?? '') === 'POST'; } /* ========================= * Validierung * ========================= */ /** * Prüft auf leeren Wert * * @param mixed $value * @return bool */ function isEmpty($value): bool { if (is_string($value)) { return trim($value) === ''; } return empty($value); } /* ========================= * Pfade / URLs * ========================= */ /** * Baut eine URL zur App * * @param string $path * @return string */ function url(string $path = ''): string { if ($path === '') { $path = '/'; } if (preg_match('~^([a-z]+:)?//~i', $path)) { return $path; } $script = $_SERVER['SCRIPT_NAME'] ?? ''; $baseDir = rtrim(strtr(dirname($script), '\\\\', '/'), '/'); if ($baseDir === '.' || $baseDir === '\\\\') { $baseDir = ''; } $segment = ltrim($path, '/'); $prefix = $baseDir === '' ? '' : $baseDir; if ($segment === '') { return $prefix === '' ? '/' : $prefix; } return ($prefix === '' ? '' : $prefix) . '/' . $segment; } /* ========================= * Debug / Entwicklung * ========================= */ /** * Dump & Die (nur Dev) * * @param mixed $value */ function dd($value): void { echo '
';
    var_dump($value);
    echo '
'; exit; } /* ========================= * Sonstiges * ========================= */ // TODO: Weitere Helfer nach Bedarf // - Datum formatieren // - Bytes → MB // - UUID erzeugen // - SVG-Koordinaten normalisieren