/** * Create fixed server request * * @param array $server * * @return $this */ private static function fixCreateServerRequest(array &$server) { $request = new self($server, $_GET, $_POST, $_COOKIE, $_FILES); // parse parameter from body content from method PUT, DELETE and PATCH. if ($request->getHeaderBag()->has('Content-Type') && 0 === strpos($request->getHeaderBag()->first('Content-Type')->getFieldValue(), 'application/x-www-form-urlencoded') && in_array(strtoupper($request->getServerBag()->get('REQUEST_METHOD', Request::HTTP_METHOD_GET)), array(Request::HTTP_METHOD_PUT, Request::HTTP_METHOD_DELETE, Request::HTTP_METHOD_PATCH))) { parse_str($request->getContent(), $data); $request->request = new ParameterBag($data ?: array()); } return $request; }