in_array(strtolower($parts['scheme'] ?? ''), ['http', 'https'], true) ? strtolower($parts['scheme']) : 'https', 'host' => (string) $parts['host'], 'port' => isset($parts['port']) ? (string) $parts['port'] : '', 'path' => $path, ]; } /** * @return array{scheme: string, host: string, port: string, path: string} */ public static function empty(): array { return ['scheme' => 'https', 'host' => '', 'port' => '', 'path' => '']; } }