Request类解析
request是请求相关的封装对象,比如原本我们想要获取get参数需要使用$_GET,post参数使用$_POST,字符串流数据通过file_get_contents(“php://input”)。而在实例化request对象时,这类参数都被组装到该对象。
类属性
名称 | 类型 | 真实含义 |
---|---|---|
$instance | object | Request对象实例 |
$method | string | 请求方式 |
$domain | string | 域名(含协议和端口) |
$url | string | URL地址 |
$baseUrl | string | 基础URL |
$baseFile | string | 当前执行的文件 |
$root | string | 访问的ROOT地址 |
$pathinfo | string | pathinfo |
$path | string | pathinfo(不含后缀) |
$routeInfo | array | 当前路由信息 |
$env | array | 环境变量 |
$dispatch | array | 路由调度信息 |
$module | string | 请求调用模块名 |
$controller | string | 请求调用控制器 |
$action | string | 请求调用操作器(控制器方法) |
$langset | string | 当前语言集 |
$param | array | 请求参数组合变量 |
$get | array | GET请求参数 |
$post | array | POST请求参数 |
$request | array | $_REQUEST |
$put | array | PUT请求参数 |
$session | array | SESSION变量 |
$file | array | 上传FILE参数 |
$cookie | array | Cookie信息 |
$server | array | $_SERVER信息 |
$header | array | HTTP请求头部信息 |
$mimeType | array | 资源类型\ |
$input | string | php://input数据 |
实例化
/**
* 构造函数
* @access protected
* @param array $options 参数
*/
protected function __construct($options = [])
{
//options要求格式为二维数组,使用property_exists()判断键名是否为request类的变量,若是则设置值
foreach ($options as $name => $item) {
if (property_exists($this, $name)) {
$this->$name = $item;
}
}
//设置filter函数列表
if (is_null($this->filter)) {
$this->filter = Config::get('default_filter');
}
// 保存 php://input
$this->input = file_get_contents('php://input');
}
/**
* 初始化
* @access public
* @param array $options