public function withScheme($scheme): UriInterface
{ $scheme =
$this->
filterScheme($scheme);
if ($this->scheme ===
$scheme) { return $this;
} $new =
clone $this;
$new->scheme =
$scheme;
$new->composedComponents = null;
$new->
removeDefaultPort();
$new->
validateState();
return $new;
} public function withUserInfo($user,
$password = null
): UriInterface
{ $info =
$this->
filterUserInfoComponent($user);
if ($password !== null
) { $info .= ':'.
$this->
filterUserInfoComponent($password);
}