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.
Property Summary
-
$callback protected
callable|null
Method Summary
-
__construct() public
-
__toString() public
Reads all data from the stream into a string, from the beginning to end.
-
attach() public
Attach a new callback to the instance.
-
close() public
Closes the stream and any underlying resources.
-
detach() public
Separates any underlying resources from the stream.
-
eof() public
Returns true if the stream is at the end of the stream.
-
getContents() public
Returns the remaining contents in a string
-
getMetadata() public
Get stream metadata as an associative array or retrieve a specific key.
-
getSize() public
Get the size of the stream if known.
-
isReadable() public
Returns whether or not the stream is readable.
-
isSeekable() public
Returns whether or not the stream is seekable.
-
isWritable() public
Returns whether or not the stream is writable.
-
read() public
Read data from the stream.
-
rewind() public
Seek to the beginning of the stream.
-
seek() public
Seek to a position in the stream.
-
tell() public
Returns the current position of the file read/write pointer
-
write() public
Write data to the stream.
Method Detail
__construct() ¶ public
__construct(callable $callback)
Parameters
-
callable
$callback
Throws
InvalidArgumentException
__toString() ¶ public
__toString(): string
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
string
attach() ¶ public
attach(callable $callback)
Attach a new callback to the instance.
Parameters
-
callable
$callback
Throws
InvalidArgumentException
for callable callback
detach() ¶ public
detach(): resource|null
Separates any underlying resources from the stream.
After the stream has been detached, the stream is in an unusable state.
Returns
resource|null
getContents() ¶ public
getContents(): string
Returns the remaining contents in a string
Returns
string
getMetadata() ¶ public
getMetadata(string|null $key = null): array|mixed|null
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|null
$key optional
Returns
array|mixed|null
isReadable() ¶ public
isReadable(): bool
Returns whether or not the stream is readable.
Returns
bool
isSeekable() ¶ public
isSeekable(): bool
Returns whether or not the stream is seekable.
Returns
bool
isWritable() ¶ public
isWritable(): bool
Returns whether or not the stream is writable.
Returns
bool
read() ¶ public
read(int $length): string
Read data from the stream.
Parameters
-
int
$length
Returns
string
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).
seek() ¶ public
seek(int $offset, int $whence = SEEK_SET)
Seek to a position in the stream.
Parameters
-
int
$offset -
int
$whence optional
write() ¶ public
write(string $string): int
Write data to the stream.
Parameters
-
string
$string
Returns
int