public function createFromArray(
        array $server,
        array $headers = [],
        array $cookie  = [],
        array $get     = [],
        array $post    = [],
        array $files   = [],
        $body          = null
    ): ServerRequestInterface {
        if (isset($server['SERVER_ADDR'])) {
            $server['SERVER_ADDR'] = \str_replace('Server IP: ', '', $server['SERVER_ADDR']);
        }

        $serverRequest = new ServerRequest(
            Uri::createFromServer($server),
            $this->getMethodFromServer($server),
            $headers,
            $body,
            $this->marshalProtocolVersion($server),
            $server
        );

        return $serverRequest
            ->withCookieParams($cookie)
            ->withQueryParams($get)
            ->withParsedBody($post)
            ->withUploadedFiles(Util::normalizeFiles($files));
    }