[HttpFoundation] Make Request::createFromGlobals() parse the body of PUT, DELETE, PATCH and QUERY requests
#61961
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Seeing that #59358 is stalled I’m opening this PR in the hope of seeing this feature in 7.4/8.0 (if it’s okay with you @rottifant).
When using PHP ≥ 8.4, this PR will try to parse a
PUT,DELETE,PATCHorQUERYrequest body usingrequest_parse_bodyto populateRequest::$requestand$files.No options are passed so that
php.inisettings apply.RequestParseBodyException(thrown when the request body is invalid, according to theContent-Type) is ignored for now.An important point is that when dealing with
multipart/form-datarequests,request_parse_bodywill only work if the input stream hasn’t been consumed (by readingphp://inputor by another call torequest_parse_body). This PR won’t overrideRequest::$requestand$filesso that the input stream can be read beforecreateFromGlobalsis called, but I don’t know how to preserve BC if it is read after (in which case it will be empty).