Request类增加destroy方法用于销毁当前实例

This commit is contained in:
thinkphp
2018-08-23 17:03:41 +08:00
parent 79a096b877
commit fad6936e4a

View File

@@ -121,6 +121,11 @@ class Request
protected $cache;
// 缓存是否检查
protected $isCheckCache;
/**
* 是否合并Param
* @var bool
*/
protected $mergeParam = false;
/**
* 构造函数
@@ -182,6 +187,18 @@ class Request
return self::$instance;
}
/**
* 销毁当前请求对象
* @access public
* @return void
*/
public static function destroy()
{
if (!is_null(self::$instance)) {
self::$instance = null;
}
}
/**
* 创建一个URL请求
* @access public
@@ -502,7 +519,7 @@ class Request
{
if (true === $method) {
// 获取原始请求类型
return IS_CLI ? 'GET' : (isset($this->server['REQUEST_METHOD']) ? $this->server['REQUEST_METHOD'] : $_SERVER['REQUEST_METHOD']);
return $this->server('REQUEST_METHOD') ?: 'GET';
} elseif (!$this->method) {
if (isset($_POST[Config::get('var_method')])) {
$this->method = strtoupper($_POST[Config::get('var_method')]);
@@ -510,7 +527,7 @@ class Request
} elseif (isset($_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'])) {
$this->method = strtoupper($_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE']);
} else {
$this->method = IS_CLI ? 'GET' : (isset($this->server['REQUEST_METHOD']) ? $this->server['REQUEST_METHOD'] : $_SERVER['REQUEST_METHOD']);
$this->method = $this->server('REQUEST_METHOD') ?: 'GET';
}
}
return $this->method;
@@ -616,7 +633,7 @@ class Request
*/
public function param($name = '', $default = null, $filter = '')
{
if (empty($this->param)) {
if (empty($this->mergeParam)) {
$method = $this->method(true);
// 自动获取请求变量
switch ($method) {
@@ -632,7 +649,8 @@ class Request
$vars = [];
}
// 当前请求参数和URL地址中的参数合并
$this->param = array_merge($this->get(false), $vars, $this->route(false));
$this->param = array_merge($this->param, $this->get(false), $vars, $this->route(false));
$this->mergeParam = true;
}
if (true === $name) {
// 获取包含文件上传信息的数组