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.

Namespace: Cake\Http

Properties summary

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()

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

See Also

http://php.net/manual/en/language.oop5.magic.php#object.tostring

attach() public

attach(callable $callback)

Attach a new callback to the instance.

Parameters

callable $callback

Throws

InvalidArgumentException
for 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|null

Underlying PHP stream, if any

eof() public

eof()

Returns true if the stream is at the end of the stream.

Returns

bool

getContents() public

getContents()

Returns the remaining contents in a string

Returns

string

Throws

RuntimeException
if 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|null

Returns 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|null

Returns the size in bytes if known, or null if unknown.

isReadable() public

isReadable()

Returns whether or not the stream is readable.

Returns

bool

isSeekable() public

isSeekable()

Returns whether or not the stream is seekable.

Returns

bool

isWritable() public

isWritable()

Returns whether or not the stream is writable.

Returns

bool

read() 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

string

Returns the data read from the stream, or an empty string if no bytes are available.

Throws

RuntimeException
if 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

RuntimeException
on failure.

See Also

\Psr\Http\Message\seek()

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

RuntimeException
on failure.

Links

tell() public

tell()

Returns the current position of the file read/write pointer

Returns

int

Position of the file pointer

Throws

RuntimeException
on error.

write() public

write(mixed $string)

Write data to the stream.

Parameters

string $string

The string that is to be written.

Returns

int

Returns the number of bytes written to the stream.

Throws

RuntimeException
on 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/3.9/class-Cake.Http.CallbackStream.html