PluginProbe
DecaLog / 4.4.0
DecaLog v4.4.0
3.0.2 3.1.0 3.10.0 3.2.0 3.3.0 3.4.0 3.4.1 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.6.3 3.7.0 3.7.1 3.8.0 3.9.0 3.9.1 4.0.0 4.1.0 4.2.0 4.3.0 4.3.1 4.4.0 4.5.0 All 75 releases
decalog / includes / libraries / http / client-common / Plugin / RequestSeekableBodyPlugin.php

RequestSeekableBodyPlugin.php in DecaLog 4.4.0, at includes/libraries/http/client-common/Plugin/RequestSeekableBodyPlugin.php

30 lines 731 B
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare(strict_types=1);
4
5 namespace Http\Client\Common\Plugin;
6
7 use Http\Message\Stream\BufferedStream;
8 use Http\Promise\Promise;
9 use Psr\Http\Message\RequestInterface;
10
11 /**
12 * Allow body used in request to be always seekable.
13 *
14 * @author Joel Wurtz <joel.wurtz@gmail.com>
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