setScheme( (string) $scheme ); } if ($user = parse_url($address, PHP_URL_USER)) { $this->setUser( (string) $user ); } if ($pass = parse_url($address, PHP_URL_PASS)) { $this->setPath( (string) $pass ); } if ($host = parse_url($address, PHP_URL_HOST)) { $this->setHost( (string) $host ); } if ($port = parse_url($address, PHP_URL_PORT)) { $this->setPort( (int) $port ); } if ($path = parse_url($address, PHP_URL_PATH)) { $this->setPath( (string) $path ); } if ($query = parse_url($address, PHP_URL_QUERY)) { $this->setQuery( (string) $query ); } } } public function isAbsolute(): bool { return ($this->_scheme && $this->_host); } public function isRelative(): bool { return !$this->isAbsolute(); } public function getScheme(): string { return $this->_scheme; } public function setScheme(string $value): void { $this->_scheme = $value; } public function getHost(): string { return $this->_host; } public function setHost(string $value): void { $this->_host = $value; } public function getUser(): string { return $this->_user; } public function setUser(string $value): void { $this->_user = $value; } public function getPass(): string { return $this->_pass; } public function setPass(string $value): void { $this->_pass = $value; } public function getPort(): int { return $this->_port; } public function setPort(int $value): void { $this->_port = $value; } public function getPath(): string { return $this->_path; } public function setPath(string $value): void { $this->_path = $value; $this->_dirs = explode( '/', $value ); } public function getDirs(): array { return $this->_dirs; } public function getQuery(): string { return $this->_query; } public function setQuery(string $value): void { $this->_query = $value; } public function absolute(string $address): string { // @TODO } }