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