protected function parseUrlComponents(UrlSettings $settings) : array
    {
        return [
            'scheme'    => $this->getScheme($settings->scheme, $settings->domain),
            'domain'    => $this->getDomain($settings->domain),
            'path'      => $this->getPath($settings->path, $settings->trailingSlash),
            'query'     => $this->getQueryString($settings->query),
            'fragment'  => $this->getFragment($settings->fragment),
        ];
    }