三十八、逐行阅读Yii2.0.43_Yii框架文件yii\web\Request.php(5)

一、属性

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方法,返回主机名称
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值