public static function getRequest() : Request { static $request = null; if ($request === null) { $data = []; if (isset($GLOBALS['argc']) && $GLOBALS['argc'] > 0) { $argv = $GLOBALS['argv']; $i = 1; $method = $argv[$i]; if ($argv[$i + 1] === '-s') { $secure = true; $i++; } else { $secure = false; } $route = $argv[$i + 1]; if (isset($argv[$i + 2])) { parse_str($argv[$i + 2], $data); } $url = 'http' . ($secure ? 's' : '') . '://'; $url .= Config::getString('host', 'domain.tld'); $url .= '/' . trim($route, '/'); $request = new Request($method, new Uri($url), $data, [], ''); } else { $request = Request::createFromGlobals(); } } return $request; }