Class CallbackStream
Implementation of PSR HTTP streams.
This differs from Laminas\Diactoros\Callback stream in that it allows the use of echo inside the callback, and gracefully handles the callback not returning a string.
Ideally we can amend/update diactoros, but we need to figure that out with the diactoros project. Until then we'll use this shim to provide backwards compatibility with existing CakePHP apps.
Properties summary
-  $callback protectedcallable|null
Method Summary
-  __construct() public
Method Detail
__construct() public
__construct(callable $callback)
Parameters
-  callable$callback
Throws
Laminas\Diactoros\Exception\InvalidArgumentException__toString() public
__toString()
Reads all data from the stream into a string, from the beginning to end.
This method MUST attempt to seek to the beginning of the stream before reading data and read the stream until the end is reached.
Warning: This could attempt to load a large amount of data into memory.
This method MUST NOT raise an exception in order to conform with PHP's string casting operations.
Returns
stringSee Also
attach() public
attach(callable $callback)
Attach a new callback to the instance.
Parameters
-  callable$callback
close() public
close()
Closes the stream and any underlying resources.
detach() public
detach()
Separates any underlying resources from the stream.
After the stream has been detached, the stream is in an unusable state.
Returns
resource|nullUnderlying PHP stream, if any
eof() public
eof()
Returns true if the stream is at the end of the stream.
Returns
boolgetContents() public
getContents()
Returns the remaining contents in a string
Returns
stringThrows
RuntimeExceptionif unable to read or an error occurs while reading.
getMetadata() public
getMetadata(mixed $key)
Get stream metadata as an associative array or retrieve a specific key.
The keys returned are identical to the keys returned from PHP's stream_get_meta_data() function.
Parameters
-  string$key optional
- Specific metadata to retrieve. 
Returns
array|mixed|nullReturns an associative array if no key is provided. Returns a specific key value if a key is provided and the value is found, or null if the key is not found.
Links
getSize() public
getSize()
Get the size of the stream if known.
Returns
int|nullReturns the size in bytes if known, or null if unknown.
isReadable() public
isReadable()
Returns whether or not the stream is readable.
Returns
boolisSeekable() public
isSeekable()
Returns whether or not the stream is seekable.
Returns
boolisWritable() public
isWritable()
Returns whether or not the stream is writable.
Returns
boolread() public
read(mixed $length)
Read data from the stream.
Parameters
-  int$length
- 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. 
Returns
stringReturns the data read from the stream, or an empty string if no bytes are available.
Throws
RuntimeExceptionif an error occurs.
rewind() public
rewind()
Seek to the beginning of the stream.
If the stream is not seekable, this method will raise an exception; otherwise, it will perform a seek(0).
Throws
RuntimeExceptionon failure.
See Also
Links
seek() public
seek(mixed $offset, mixed $whence)
Seek to a position in the stream.
Parameters
-  int$offset
- Stream offset 
-  int$whence optional
- 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.
Throws
RuntimeExceptionon failure.
Links
tell() public
tell()
Returns the current position of the file read/write pointer
Returns
intPosition of the file pointer
Throws
RuntimeExceptionon error.
write() public
write(mixed $string)
Write data to the stream.
Parameters
-  string$string
- The string that is to be written. 
Returns
intReturns the number of bytes written to the stream.
Throws
RuntimeExceptionon failure.
Property Detail
$callback protected
Type
callable|null
    © 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
    https://api.cakephp.org/4.0/class-Cake.Http.CallbackStream.html