[HttpFoundation] Complete Request::overrideGlobals
This commit is contained in:
parent
4bb65c7057
commit
b217897ecb
@ -397,7 +397,8 @@ class Request
|
||||
/**
|
||||
* Overrides the PHP global variables according to this request instance.
|
||||
*
|
||||
* It overrides $_GET, $_POST, $_REQUEST, $_SERVER, $_COOKIE, and $_FILES.
|
||||
* It overrides $_GET, $_POST, $_REQUEST, $_SERVER, $_COOKIE.
|
||||
* $_FILES is never override, see rfc1867
|
||||
*
|
||||
* @api
|
||||
*/
|
||||
@ -407,7 +408,6 @@ class Request
|
||||
$_POST = $this->request->all();
|
||||
$_SERVER = $this->server->all();
|
||||
$_COOKIE = $this->cookies->all();
|
||||
// FIXME: populate $_FILES
|
||||
|
||||
foreach ($this->headers->all() as $key => $value) {
|
||||
$key = strtoupper(str_replace('-', '_', $key));
|
||||
@ -418,9 +418,15 @@ class Request
|
||||
}
|
||||
}
|
||||
|
||||
// FIXME: should read variables_order and request_order
|
||||
// to know which globals to merge and in which order
|
||||
$_REQUEST = array_merge($_GET, $_POST);
|
||||
$request = array('g' => $_GET, 'p' => $_POST, 'c' => $_COOKIE);
|
||||
|
||||
$request_order = ini_get('request_order') ?: ini_get('variable_order');
|
||||
$request_order = preg_replace('#[^cgp]#', '', strtolower($request_order)) ?: 'gp';
|
||||
|
||||
$_REQUEST = array();
|
||||
foreach (str_split($request_order) as $order) {
|
||||
$_REQUEST = array_merge($_REQUEST, $request[$order]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user