Files
awo-hamburg-intranet/mysyde/common/abstracts/URLBase.php
2026-02-17 14:56:23 +01:00

83 lines
2.0 KiB
PHP

<?php
namespace DynCom\mysyde\common\abstracts;
/**
* Created by PhpStorm.
* User: Bauer
* Date: 6/22/2015
* Time: 12:11 PM
*/
abstract class URLBase {
protected $protocol;
protected $user;
protected $password;
protected $domain;
protected $port;
protected $path;
protected $queryParams;
protected $anchor;
/**
* @return string
*/
public function getQueryString() {
$queryString = '';
if(is_array($this->queryParams)) {
$queryString .= '?';
$i = 0;
foreach($this->queryParams as $paramArr) {
$paramName = $paramArr['paramName'];
$paramVal = $paramArr['paramValue'];
if($i > 0) {
$queryString .= '&';
}
$queryString .= $paramName . '=' . $paramVal;
++$i;
}
}
return $queryString;
}
/**
* @return string
*/
public function getFullURL() {
if(null === ($this->domain)) {
throw new \RuntimeException('No domain-name set.');
}
if(null === ($this->protocol)) {
throw new \RuntimeException('No protocol set.');
}
//Protocol
$url = $this->protocol . '://';
//User/Pass
if(null !== $this->user) {
$url .= $this->user . ':';
if(null !== $this->password) {
$url .= $this->password;
}
$url .= '@';
}
//Domain
$url .= $this->domain;
//Port
if(null !== $this->port) {
$url .= ':' . $this->port;
}
//Path
if(null !== $this->path) {
$url .= $this->path;
}
//QueryString
if(null !== $this->queryParams) {
$url .= $this->getQueryString();
}
//Anchor
if(null !== $this->anchor) {
$url .= '#' . $this->anchor;
}
return $url;
}
}