\Cake\HttpCallbackStream

Implementation of PSR HTTP streams.

This differs from Zend\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.

Summary

Methods
Properties
Constants
__construct()
__toString()
close()
detach()
attach()
getSize()
tell()
eof()
isSeekable()
seek()
rewind()
isWritable()
write()
isReadable()
read()
getContents()
getMetadata()
No public properties found
No constants found
No protected methods found
$callback
N/A
No private methods found
No private properties found
N/A

Properties

$callback

$callback : callable|null

Type

callable|null

Methods

__construct()

__construct(callable  $callback) 

Parameters

callable $callback

Throws

\InvalidArgumentException

__toString()

__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

close()

close() : void

Closes the stream and any underlying resources.

detach()

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 —

Underlying PHP stream, if any

attach()

attach(callable  $callback) 

Attach a new callback to the instance.

Parameters

callable $callback

Throws

\InvalidArgumentException

for callable callback

getSize()

getSize() : integer|null

Get the size of the stream if known.

Returns

integer|null —

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

tell()

tell() : integer

Returns the current position of the file read/write pointer

Returns

integer —

Position of the file pointer

eof()

eof() : boolean

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

Returns

boolean

isSeekable()

isSeekable() : boolean

Returns whether or not the stream is seekable.

Returns

boolean

seek()

seek(integer  $offset, integer  $whence = \SEEK_SET) 

Seek to a position in the stream.

Parameters

integer $offset

Stream offset

integer $whence

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.

rewind()

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

isWritable()

isWritable() : boolean

Returns whether or not the stream is writable.

Returns

boolean

write()

write(string  $string) : integer

Write data to the stream.

Parameters

string $string

The string that is to be written.

Returns

integer —

Returns the number of bytes written to the stream.

isReadable()

isReadable() : boolean

Returns whether or not the stream is readable.

Returns

boolean

read()

read(integer  $length) : string

Read data from the stream.

Parameters

integer $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.

getContents()

getContents() : string

Returns the remaining contents in a string

Returns

string

getMetadata()

getMetadata(string  $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 $key

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.