一、属性
1. $_queryParams 查询参数
2. $_hostInfo 主机信息
3. $_hostName 主机名称
//查询参数
private $_queryParams;
//主机信息
private $_hostInfo;
//主机名称
private $_hostName;
二、方法
1. getQueryParams方法,返回url中queryString部分
// 返回queryString
public function getQueryParams()
{
if ($this->_queryParams === null) {
return $_GET;
}
return $this->_queryParams;
}
2. setQueryParams 设置queryString
//设置queryString
public function setQueryParams($values)
{
$this->_queryParams = $values;
}
3. get方法,返回GET参数
//返回GET参数值,$name为null,返回一个GET数组
public function get($name = null, $defaultValue = null)
{
if ($name === null) {
return $this->getQueryParams();
}
return $this->getQueryParam($name, $defaultValue);
}
4. getQueryParam方法,返回指定GET参数值
//返回指定GET参数值
public function getQueryParam($name, $defaultValue = null)
{
$params = $this->getQueryParams();
return isset($params[$name]) ?
$params[$name] : // 指定值
$defaultValue; // 默认值
}
5. getHostInfo方法,返回主机信息
//从请求url解析主机和协议
public function getHostInfo()
{
if ($this->_hostInfo === null) {
$secure = $this->getIsSecureConnection();
$http = $secure ? 'https' : 'http';
if ($this->getSecureForwardedHeaderTrustedPart('host') !== null) {
$this->_hostInfo = $http . '://' . $this->getSecureForwardedHeaderTrustedPart('host');
} elseif ($this->headers->has('X-Forwarded-Host')) {
$this->_hostInfo = $http . '://' . trim(explode(',', $this->headers->get('X-Forwarded-Host'))[0]);
} elseif ($this->headers->has('X-Original-Host')) {
$this->_hostInfo = $http . '://' . trim(explode(',', $this->headers->get('X-Original-Host'))[0]);
} elseif ($this->headers->has('Host')) {
$this->_hostInfo = $http . '://' . $this->headers->get('Host');
} elseif (isset($_SERVER['SERVER_NAME'])) {
$this->_hostInfo = $http . '://' . $_SERVER['SERVER_NAME'];
$port = $secure ? $this->getSecurePort() : $this->getPort();
if (($port !== 80 && !$secure) || ($port !== 443 && $secure)) {
$this->_hostInfo .= ':' . $port;
}
}
}
return $this->_hostInfo;
}
6. setHostInfo方法,设置主机信息
//设置主机信息
public function setHostInfo($value)
{
$this->_hostName = null;
$this->_hostInfo = $value === null ? null : rtrim($value, '/');
}
7. getHostName方法,返回主机名称
//主机名称
public function getHostName()
{
if ($this->_hostName === null) {
$this->_hostName = parse_url($this->getHostInfo(), PHP_URL_HOST);
}
return $this->_hostName;
}
总结:
阅读了3个属性和7个方法:
- $_queryParams 查询参数
- $_hostInfo 主机信息
- $_hostName 主机名称
- getQueryParams方法,返回url中queryString部分
- setQueryParams 设置queryString
- get方法,返回GET参数
- getQueryParam方法,返回指定GET参数值
- getHostInfo方法,返回主机信息
- setHostInfo方法,设置主机信息
- getHostName方法,返回主机名称