Open Monograph Press  3.3.0
DroppingStream.php
1 <?php
2 namespace GuzzleHttp\Psr7;
3 
5 
11 {
12  use StreamDecoratorTrait;
13 
14  private $maxLength;
15 
20  public function __construct(StreamInterface $stream, $maxLength)
21  {
22  $this->stream = $stream;
23  $this->maxLength = $maxLength;
24  }
25 
26  public function write($string)
27  {
28  $diff = $this->maxLength - $this->stream->getSize();
29 
30  // Begin returning 0 when the underlying stream is too large.
31  if ($diff <= 0) {
32  return 0;
33  }
34 
35  // Write the stream or a subset of the stream if needed.
36  if (strlen($string) < $diff) {
37  return $this->stream->write($string);
38  }
39 
40  return $this->stream->write(substr($string, 0, $diff));
41  }
42 }
GuzzleHttp\Psr7\DroppingStream\__construct
__construct(StreamInterface $stream, $maxLength)
Definition: DroppingStream.php:20
Psr\Http\Message\StreamInterface
Definition: vendor/psr/http-message/src/StreamInterface.php:12
GuzzleHttp\Psr7\DroppingStream\write
write($string)
Definition: DroppingStream.php:26
GuzzleHttp\Psr7
Definition: AppendStream.php:2
GuzzleHttp\Psr7\DroppingStream
Definition: DroppingStream.php:10