/** * @param array $server * @param array $query * @param array $body * @param array $cookies * @param array $files * * @return ServerRequest */ public static function fromGlobals(array $server = null, array $query = null, array $body = null, array $cookies = null, array $files = null) { $cookies = new CookieJar($cookies ?: $_COOKIE); $server = static::normalizeServer($server ?: $_SERVER); $files = static::normalizeFiles($files ?: $_FILES); $headers = static::marshalHeaders($server); $request = new Request($cookies, $server, $files, static::marshalUriFromServer($server, $headers), static::get('REQUEST_METHOD', $server, 'GET'), 'php://input', $headers); return $request->withQueryParams($query ?: $_GET)->withParsedBody($body ?: $_POST); }