CachingStream
in package
implements
StreamInterface
uses
StreamDecoratorTrait
Stream decorator that can cache previously read bytes from a sequentially read stream.
Table of Contents
Interfaces
- StreamInterface
- Describes a data stream.
Properties
Methods
- __call() : mixed
- Allow decorators to implement custom methods
- __construct() : mixed
- We will treat the buffer object as the body of the stream
- __get() : StreamInterface
- Magic method used to create a new stream if streams are not added in the constructor of a decorator (e.g., LazyOpenStream).
- __toString() : string
- close() : void
- Close both the remote stream and buffer stream
- detach() : mixed
- eof() : bool
- Returns true if the stream is at the end of the stream.
- getContents() : string
- getMetadata() : mixed
- getSize() : int|null
- Get the size of the stream if known.
- isReadable() : bool
- isSeekable() : bool
- isWritable() : bool
- read() : string
- Read data from the stream.
- rewind() : void
- Seek to the beginning of the stream.
- seek() : void
- Seek to a position in the stream.
- tell() : int
- write() : int
- Write data to the stream.
- createStream() : StreamInterface
- Implement in subclasses to dynamically create streams when requested.
- cacheEntireStream() : int
Properties
$remoteStream
private
StreamInterface
$remoteStream
Stream being wrapped
$skipReadBytes
private
int
$skipReadBytes
= 0
Number of bytes to skip reading due to a write on the buffer
$stream
private
StreamInterface
$stream
Methods
__call()
Allow decorators to implement custom methods
public
__call(string $method, array<string|int, mixed> $args) : mixed
Parameters
- $method : string
- $args : array<string|int, mixed>
__construct()
We will treat the buffer object as the body of the stream
public
__construct(StreamInterface $stream[, StreamInterface $target = null ]) : mixed
Parameters
- $stream : StreamInterface
-
Stream to cache. The cursor is assumed to be at the beginning of the stream.
- $target : StreamInterface = null
-
Optionally specify where data is cached
__get()
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) : StreamInterface
Parameters
- $name : string
Return values
StreamInterface__toString()
public
__toString() : string
Return values
stringclose()
Close both the remote stream and buffer stream
public
close() : void
detach()
public
detach() : mixed
eof()
Returns true if the stream is at the end of the stream.
public
eof() : bool
Return values
boolgetContents()
public
getContents() : string
Return values
stringgetMetadata()
public
getMetadata([mixed $key = null ]) : mixed
Parameters
- $key : mixed = null
getSize()
Get the size of the stream if known.
public
getSize() : int|null
Return values
int|null —Returns the size in bytes if known, or null if unknown.
isReadable()
public
isReadable() : bool
Return values
boolisSeekable()
public
isSeekable() : bool
Return values
boolisWritable()
public
isWritable() : bool
Return values
boolread()
Read data from the stream.
public
read(mixed $length) : string
Parameters
- $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 values
string —Returns the data read from the stream, or an empty string if no bytes are available.
rewind()
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()
Seek to a position in the stream.
public
seek(mixed $offset[, mixed $whence = SEEK_SET ]) : void
Parameters
- $offset : mixed
-
Stream offset
- $whence : mixed = SEEK_SET
-
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 to offset bytes SEEK_CUR: Set position to current location plus offset SEEK_END: Set position to end-of-stream plus offset.
tell()
public
tell() : int
Return values
intwrite()
Write data to the stream.
public
write(mixed $string) : int
Parameters
- $string : mixed
-
The string that is to be written.
Return values
int —Returns the number of bytes written to the stream.
createStream()
Implement in subclasses to dynamically create streams when requested.
protected
createStream() : StreamInterface
Tags
Return values
StreamInterfacecacheEntireStream()
private
cacheEntireStream() : int