public function overrideGlobals() {

		$this->server->set('QUERY_STRING', static::normalizeQueryString(http_build_query($this->query->all(), NULL, '&')));

		$_GET		= $this->query->all();
		$_POST		= $this->request->all();
		$_SERVER	= $this->server->all();
		$_COOKIE	= $this->cookies->all();

		foreach ($this->headers->all() as $key => $value) {

			$key = strtoupper(str_replace('-', '_', $key));
			
			if (in_array($key, ['CONTENT_TYPE', 'CONTENT_LENGTH'])) {
				$_SERVER[$key] = implode(', ', $value);
			}
			else {
				$_SERVER['HTTP_' . $key] = implode(', ', $value);
			}

		}

		$request = ['g' => $_GET, 'p' => $_POST, 'c' => $_COOKIE];

		$requestOrder	= ini_get('request_order') ?: ini_get('variables_order');
		$requestOrder	= preg_replace('#[^cgp]#', '', strtolower($requestOrder)) ?: 'gp';

		$_REQUEST = [];

		foreach (str_split($requestOrder) as $order) {
			$_REQUEST = array_merge($_REQUEST, $request[$order]);
		}

	}