Stream decorator that can cache previously read bytes from a sequentially read stream.
- Full name:
\GuzzleHttp\Psr7\CachingStream
- This class is marked as final and can't be subclassed
- This class implements:
\Psr\Http\Message\StreamInterface
- This class is a Final class
private \Psr\Http\Message\StreamInterface $remoteStream
private int $skipReadBytes
private \Psr\Http\Message\StreamInterface $stream
We will treat the buffer object as the body of the stream
public __construct(\Psr\Http\Message\StreamInterface $stream, \Psr\Http\Message\StreamInterface $target = null): mixed
Parameters:
Parameter | Type | Description |
---|---|---|
$stream |
\Psr\Http\Message\StreamInterface | Stream to cache. The cursor is assumed to be at the beginning of the stream. |
$target |
\Psr\Http\Message\StreamInterface | Optionally specify where data is cached |
Get the size of the stream if known.
public getSize(): int|null
Return Value:
Returns the size in bytes if known, or null if unknown.
Seek to the beginning of the stream.
public rewind(): void
If the stream is not seekable, this method will raise an exception; otherwise, it will perform a seek(0).
Seek to a position in the stream.
public seek(mixed $offset, mixed $whence = SEEK_SET): void
Parameters:
Parameter | Type | Description |
---|---|---|
$offset |
mixed | Stream offset |
$whence |
mixed | Specifies how the cursor position will be calculated based on the seek offset. Valid values are identical to the built-in PHP $whence values for fseek() . SEEK_SET: Set position equal tooffset bytes SEEK_CUR: Set position to current location plus offset SEEK_END: Set position to end-of-stream plus offset. |
Read data from the stream.
public read(mixed $length): string
Parameters:
Parameter | Type | Description |
---|---|---|
$length |
mixed | Read up to $length bytes from the object and return them. Fewer than $length bytes may be returned if underlying stream call returns fewer bytes. |
Return Value:
Returns the data read from the stream, or an empty string if no bytes are available.
Write data to the stream.
public write(mixed $string): int
Parameters:
Parameter | Type | Description |
---|---|---|
$string |
mixed | The string that is to be written. |
Return Value:
Returns the number of bytes written to the stream.
Returns true if the stream is at the end of the stream.
public eof(): bool
Close both the remote stream and buffer stream
public close(): void
private cacheEntireStream(): int
public __construct(\Psr\Http\Message\StreamInterface $stream): mixed
Parameters:
Parameter | Type | Description |
---|---|---|
$stream |
\Psr\Http\Message\StreamInterface | Stream to decorate |
Magic method used to create a new stream if streams are not added in the constructor of a decorator (e.g., LazyOpenStream).
public __get(string $name): \Psr\Http\Message\StreamInterface
Parameters:
Parameter | Type | Description |
---|---|---|
$name |
string |
public __toString(): string
public getContents(): string
Allow decorators to implement custom methods
public __call(string $method, array $args): mixed
Parameters:
Parameter | Type | Description |
---|---|---|
$method |
string | |
$args |
array |
public close(): void
{@inheritdoc}
public getMetadata(mixed $key = null): mixed
Parameters:
Parameter | Type | Description |
---|---|---|
$key |
mixed |
public detach(): mixed
public getSize(): ?int
public eof(): bool
public tell(): int
public isReadable(): bool
public isWritable(): bool
public isSeekable(): bool
public rewind(): void
public seek(mixed $offset, mixed $whence = SEEK_SET): void
Parameters:
Parameter | Type | Description |
---|---|---|
$offset |
mixed | |
$whence |
mixed |
public read(mixed $length): string
Parameters:
Parameter | Type | Description |
---|---|---|
$length |
mixed |
public write(mixed $string): int
Parameters:
Parameter | Type | Description |
---|---|---|
$string |
mixed |
Implement in subclasses to dynamically create streams when requested.
protected createStream(): \Psr\Http\Message\StreamInterface