public function testCreateFromEnvironmentIgnoresHeaders() { $e = Environment::mock(['CONTENT_TYPE' => 'text/csv', 'HTTP_CONTENT_LENGTH' => 1230]); $h = Headers::createFromGlobals($e); $prop = new ReflectionProperty($h, 'data'); $prop->setAccessible(true); $this->assertNotContains('content-length', $prop->getValue($h)); }
public static function createFromGlobals(array $globals) { $env = new Collection($globals); $method = $env->get('REQUEST_METHOD'); $uri = Uri::createFromGlobals($globals); $headers = Headers::createFromGlobals($globals); $cookies = Cookies::parseHeader($headers->get('Cookie', [])); $serverParams = $globals; $body = new RequestBody(); $uploadedFiles = UploadedFile::createFromGlobals($globals); $request = new static($method, $uri, $headers, $cookies, $serverParams, $body, $uploadedFiles); if ($method === 'POST' && in_array($request->getMediaType(), ['application/x-www-form-urlencoded', 'multipart/form-data'])) { // parsed body must be $_POST $request = $request->withParsedBody($_POST); } return $request; }