public function isEqual($url)
{
$url = new self($url);
$query = $url->query;
ksort($query);
$query2 = $this->query;
ksort($query2);
$http = in_array($this->scheme, ['http', 'https'], TRUE);
return $url->scheme === $this->scheme && !strcasecmp($url->host, $this->host) && $url->getPort() === $this->getPort() && ($http || $url->user === $this->user) && ($http || $url->password === $this->password) && self::unescape($url->path, '%/') === self::unescape($this->path, '%/') && $query === $query2 && $url->fragment === $this->fragment;
}