CachingEntityBody
extends AbstractEntityBodyDecorator
in package
EntityBody decorator that can cache previously read bytes from a sequentially read tstream
Table of Contents
Properties
Methods
- __call() : mixed
- Allow decorators to implement custom methods
- __construct() : mixed
- We will treat the buffer object as the body of the entity body {@inheritdoc}
- __toString() : string
- Will give the contents of the buffer followed by the exhausted remote stream.
- close() : mixed
- Close both the remote stream and buffer stream
- compress() : bool
- If the stream is readable, compress the data in the stream using deflate compression. The uncompressed stream is then closed, and the compressed stream then becomes the wrapped stream.
- detachStream() : self
- Detach the current stream resource
- feof() : bool
- Alias of isConsumed() {@inheritdoc}
- ftell() : int|bool
- Returns the current position of the file read/write pointer
- getContentEncoding() : bool|string
- Get the Content-Encoding of the EntityBody
- getContentLength() : int|bool
- Get the Content-Length of the entity body if possible (alias of getSize)
- getContentMd5() : bool|string
- Get an MD5 checksum of the stream's contents
- getContentType() : string|null
- Guess the Content-Type of a local stream
- getCustomData() : null|mixed
- Always retrieve custom data from the remote stream {@inheritdoc}
- getMetaData() : array<string|int, mixed>|mixed|null
- Get stream metadata
- getSize() : int|bool
- Get the size of the stream if able
- getStream() : resource
- Get the stream resource
- getStreamType() : string
- Get a label describing the underlying implementation of the stream
- getUri() : string
- Get the URI/filename associated with this stream
- getWrapper() : string
- Get the stream wrapper type
- getWrapperData() : array<string|int, mixed>
- Wrapper specific data attached to this stream.
- isConsumed() : bool
- Check if the stream has been consumed
- isLocal() : bool
- Check if the stream is a local stream vs a remote stream
- isReadable() : bool
- Check if the stream is readable
- isRepeatable() : bool
- Check if the stream is repeatable
- isSeekable() : bool
- Check if the string is repeatable
- isWritable() : bool
- Check if the stream is writable
- read() : string|bool
- Read data from the stream
- readLine() : string|bool
- Read a line from the stream up to the maximum allowed buffer length
- rewind() : bool
- Rewind to the beginning of the stream
- seek() : bool
- Seek to a position in the stream
- setCustomData() : self
- Always set custom data on the remote stream {@inheritdoc}
- setRewindFunction() : self
- Does not support custom rewind functions
- setSize() : self
- Specify the size of the stream in bytes
- setStream() : self
- Set the stream that is wrapped by the object
- uncompress() : bool
- Decompress a deflated string. Once uncompressed, the uncompressed string is then used as the wrapped stream.
- write() : int|bool
- Write data to the stream
Properties
$body
protected
EntityBodyInterface
$body
Decorated entity body
$remoteStream
protected
EntityBody
$remoteStream
Remote stream used to actually pull data onto the buffer
$skipReadBytes
protected
int
$skipReadBytes
= 0
The number of bytes to skip reading due to a write on the temporary buffer
Methods
__call()
Allow decorators to implement custom methods
public
__call(string $method, array<string|int, mixed> $args) : mixed
Parameters
- $method : string
-
Missing method name
- $args : array<string|int, mixed>
-
Method arguments
__construct()
We will treat the buffer object as the body of the entity body {@inheritdoc}
public
__construct(EntityBodyInterface $body) : mixed
Parameters
- $body : EntityBodyInterface
-
Entity body to decorate
__toString()
Will give the contents of the buffer followed by the exhausted remote stream.
public
__toString() : string
Warning: Loads the entire stream into memory
Return values
stringclose()
Close both the remote stream and buffer stream
public
close() : mixed
compress()
If the stream is readable, compress the data in the stream using deflate compression. The uncompressed stream is then closed, and the compressed stream then becomes the wrapped stream.
public
compress([mixed $filter = 'zlib.deflate' ]) : bool
Parameters
- $filter : mixed = 'zlib.deflate'
-
Compression filter
Return values
bool —Returns TRUE on success or FALSE on failure
detachStream()
Detach the current stream resource
public
detachStream() : self
Return values
selffeof()
Alias of isConsumed() {@inheritdoc}
public
feof() : bool
Return values
boolftell()
Returns the current position of the file read/write pointer
public
ftell() : int|bool
Return values
int|bool —Returns the position of the file pointer or false on error
getContentEncoding()
Get the Content-Encoding of the EntityBody
public
getContentEncoding() : bool|string
Return values
bool|stringgetContentLength()
Get the Content-Length of the entity body if possible (alias of getSize)
public
getContentLength() : int|bool
Return values
int|bool —Returns the Content-Length or false on failure
getContentMd5()
Get an MD5 checksum of the stream's contents
public
getContentMd5([mixed $rawOutput = false ][, mixed $base64Encode = false ]) : bool|string
Parameters
- $rawOutput : mixed = false
-
Whether or not to use raw output
- $base64Encode : mixed = false
-
Whether or not to base64 encode raw output (only if raw output is true)
Return values
bool|string —Returns an MD5 string on success or FALSE on failure
getContentType()
Guess the Content-Type of a local stream
public
getContentType() : string|null
Return values
string|nullgetCustomData()
Always retrieve custom data from the remote stream {@inheritdoc}
public
getCustomData(mixed $key) : null|mixed
Parameters
- $key : mixed
-
Key to retrieve
Return values
null|mixedgetMetaData()
Get stream metadata
public
getMetaData([mixed $key = null ]) : array<string|int, mixed>|mixed|null
Parameters
- $key : mixed = null
-
Specific metadata to retrieve
Return values
array<string|int, mixed>|mixed|nullgetSize()
Get the size of the stream if able
public
getSize() : int|bool
Return values
int|boolgetStream()
Get the stream resource
public
getStream() : resource
Return values
resourcegetStreamType()
Get a label describing the underlying implementation of the stream
public
getStreamType() : string
Return values
stringgetUri()
Get the URI/filename associated with this stream
public
getUri() : string
Return values
stringgetWrapper()
Get the stream wrapper type
public
getWrapper() : string
Return values
stringgetWrapperData()
Wrapper specific data attached to this stream.
public
getWrapperData() : array<string|int, mixed>
Return values
array<string|int, mixed>isConsumed()
Check if the stream has been consumed
public
isConsumed() : bool
Return values
boolisLocal()
Check if the stream is a local stream vs a remote stream
public
isLocal() : bool
Return values
boolisReadable()
Check if the stream is readable
public
isReadable() : bool
Return values
boolisRepeatable()
Check if the stream is repeatable
public
isRepeatable() : bool
Return values
boolisSeekable()
Check if the string is repeatable
public
isSeekable() : bool
Return values
boolisWritable()
Check if the stream is writable
public
isWritable() : bool
Return values
boolread()
Read data from the stream
public
read(mixed $length) : string|bool
Parameters
- $length : mixed
-
Up to length number of bytes read.
Return values
string|bool —Returns the data read from the stream or FALSE on failure or EOF
readLine()
Read a line from the stream up to the maximum allowed buffer length
public
readLine([mixed $maxLength = null ]) : string|bool
Parameters
- $maxLength : mixed = null
-
Maximum buffer length
Tags
Return values
string|boolrewind()
Rewind to the beginning of the stream
public
rewind() : bool
Return values
bool —Returns true on success or false on failure
seek()
Seek to a position in the stream
public
seek(mixed $offset[, mixed $whence = SEEK_SET ]) : bool
Parameters
- $offset : mixed
-
Stream offset
- $whence : mixed = SEEK_SET
-
Where the offset is applied
Tags
Return values
bool —Returns TRUE on success or FALSE on failure
setCustomData()
Always set custom data on the remote stream {@inheritdoc}
public
setCustomData(mixed $key, mixed $value) : self
Parameters
- $key : mixed
-
Key to set
- $value : mixed
-
Value to set
Return values
selfsetRewindFunction()
Does not support custom rewind functions
public
setRewindFunction(mixed $callable) : self
Parameters
- $callable : mixed
-
Callable to invoke to rewind a non-seekable stream. The callback must accept an EntityBodyInterface object, perform the rewind if possible, and return a boolean representing whether or not the rewind was successful.
Tags
Return values
selfsetSize()
Specify the size of the stream in bytes
public
setSize(mixed $size) : self
Parameters
- $size : mixed
-
Size of the stream contents in bytes
Return values
selfsetStream()
Set the stream that is wrapped by the object
public
setStream(mixed $stream[, mixed $size = 0 ]) : self
Parameters
- $stream : mixed
-
Stream resource to wrap
- $size : mixed = 0
-
Size of the stream in bytes. Only pass if the size cannot be obtained from the stream.
Return values
selfuncompress()
Decompress a deflated string. Once uncompressed, the uncompressed string is then used as the wrapped stream.
public
uncompress([mixed $filter = 'zlib.inflate' ]) : bool
Parameters
- $filter : mixed = 'zlib.inflate'
-
De-compression filter
Return values
bool —Returns TRUE on success or FALSE on failure
write()
Write data to the stream
public
write(mixed $string) : int|bool
Parameters
- $string : mixed
-
The string that is to be written.
Return values
int|bool —Returns the number of bytes written to the stream on success or FALSE on failure.