| @@ 16-29 (lines=14) @@ | ||
| 13 | * |
|
| 14 | * @author Joel Wurtz <[email protected]> |
|
| 15 | */ |
|
| 16 | final class RequestSeekableBodyPlugin extends SeekableBodyPlugin |
|
| 17 | { |
|
| 18 | /** |
|
| 19 | * {@inheritdoc} |
|
| 20 | */ |
|
| 21 | public function handleRequest(RequestInterface $request, callable $next, callable $first): Promise |
|
| 22 | { |
|
| 23 | if (!$request->getBody()->isSeekable()) { |
|
| 24 | $request = $request->withBody(new BufferedStream($request->getBody(), $this->useFileBuffer, $this->memoryBufferSize)); |
|
| 25 | } |
|
| 26 | ||
| 27 | return $next($request); |
|
| 28 | } |
|
| 29 | } |
|
| 30 | ||
| @@ 17-32 (lines=16) @@ | ||
| 14 | * |
|
| 15 | * @author Joel Wurtz <[email protected]> |
|
| 16 | */ |
|
| 17 | final class ResponseSeekableBodyPlugin extends SeekableBodyPlugin |
|
| 18 | { |
|
| 19 | /** |
|
| 20 | * {@inheritdoc} |
|
| 21 | */ |
|
| 22 | public function handleRequest(RequestInterface $request, callable $next, callable $first): Promise |
|
| 23 | { |
|
| 24 | return $next($request)->then(function (ResponseInterface $response) { |
|
| 25 | if ($response->getBody()->isSeekable()) { |
|
| 26 | return $response; |
|
| 27 | } |
|
| 28 | ||
| 29 | return $response->withBody(new BufferedStream($response->getBody(), $this->useFileBuffer, $this->memoryBufferSize)); |
|
| 30 | }); |
|
| 31 | } |
|
| 32 | } |
|
| 33 | ||