public static function createFromGlobals(
        array $query = null,
        array $post = null,
        array $cookie = null,
        array $server = null,
        array $files = null,
        array $env = null,
        $content = null
    ) {
        $query = isset($query) ? $query : $_GET;
        $post = isset($post) ? $post : $_POST;
        $cookie = isset($cookie) ? $cookie : $_COOKIE;
        $server = isset($server) ? $server : $_SERVER;
        $files = isset($files) ? $files : $_FILES;
        $env = isset($env) ? $env : $_ENV;

        $server = self::setServerParam($server, [
            'CONTENT_LENGTH' => 'HTTP_CONTENT_LENGTH',
            'CONTENT_TYPE'   => 'HTTP_CONTENT_TYPE',
        ]);

        return new static($query, $post, $cookie, $server, $files, $env, $content);
    }