32
vendor/php-http/client-common/src/Plugin/ResponseSeekableBodyPlugin.php
vendored
Normal file
32
vendor/php-http/client-common/src/Plugin/ResponseSeekableBodyPlugin.php
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Http\Client\Common\Plugin;
|
||||
|
||||
use Http\Message\Stream\BufferedStream;
|
||||
use Http\Promise\Promise;
|
||||
use Psr\Http\Message\RequestInterface;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
|
||||
/**
|
||||
* Allow body used in response to be always seekable.
|
||||
*
|
||||
* @author Joel Wurtz <joel.wurtz@gmail.com>
|
||||
*/
|
||||
final class ResponseSeekableBodyPlugin extends SeekableBodyPlugin
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function handleRequest(RequestInterface $request, callable $next, callable $first): Promise
|
||||
{
|
||||
return $next($request)->then(function (ResponseInterface $response) {
|
||||
if ($response->getBody()->isSeekable()) {
|
||||
return $response;
|
||||
}
|
||||
|
||||
return $response->withBody(new BufferedStream($response->getBody(), $this->useFileBuffer, $this->memoryBufferSize));
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user