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.
This pull request introduces a
transmit()
method for file uploads to replace the transfer() method, making uploads consistent with downloads.Example
Given the following file upload code:
The problem is that all other requests are blocked until all uploads have been processed. By adding a yield statement after
$file->transfer($uploads);
, we could hand back control to the server once a file has been transferred (which is what README suggested):foreach ($multipart->files() as $name => $file) { $files[]= $name; $bytes+= $file->transfer($uploads); + yield; }
However, with big file uploads (or clients with slow connection speeds), this might still be blocking other requests for a significant amount of time. With the new API, the example can be changed as follows:
Further notes
This pull request makes use of the new features added in xp-framework/networking#22. However, the code also runs without this featureset being available!