\GuzzleHttp\Psr7FnStream

Compose stream implementations based on a hash of functions.

Allows for easy testing and extension of a provided stream without needing to create a concrete class for a simple extension point.

Summary

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

Properties

$methods

$methods : array

Type

array

$slots

$slots : array

Type

array — Methods that must be implemented in the given array

Methods

__construct()

__construct(array  $methods) : mixed

Parameters

array $methods

Hash of method name to a callable.

Returns

mixed —

__get()

__get(mixed  $name) : mixed

Lazily determine which methods are not implemented.

Parameters

mixed $name

Throws

\BadMethodCallException

Returns

mixed —

__destruct()

__destruct() : mixed

The close method is called on the underlying stream only if possible.

Returns

mixed —

__wakeup()

__wakeup() : mixed

An unserialize would allow the __destruct to run when the unserialized value goes out of scope.

Throws

\LogicException

Returns

mixed —

decorate()

decorate(\Psr\Http\Message\StreamInterface  $stream, array  $methods) : \GuzzleHttp\Psr7\FnStream

Adds custom functionality to an underlying stream by intercepting specific method calls.

Parameters

\Psr\Http\Message\StreamInterface $stream

Stream to decorate

array $methods

Hash of method name to a closure

Returns

\GuzzleHttp\Psr7\FnStream —

__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

getSize()

getSize() : int|null

Get the size of the stream if known.

Returns

int|null —

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

tell()

tell() : int

Returns the current position of the file read/write pointer

Returns

int —

Position of the file pointer

eof()

eof() : bool

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

Returns

bool —

isSeekable()

isSeekable() : bool

Returns whether or not the stream is seekable.

Returns

bool —

rewind()

rewind() : mixed

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

Returns

mixed —

seek()

seek(mixed  $offset, mixed  $whence = SEEK_SET) : mixed

Seek to a position in the stream.

Parameters

mixed $offset

Stream offset

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

Returns

mixed —

isWritable()

isWritable() : bool

Returns whether or not the stream is writable.

Returns

bool —

write()

write(mixed  $string) : int

Write data to the stream.

Parameters

mixed $string

The string that is to be written.

Returns

int —

Returns the number of bytes written to the stream.

isReadable()

isReadable() : bool

Returns whether or not the stream is readable.

Returns

bool —

read()

read(mixed  $length) : string

Read data from the stream.

Parameters

mixed $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(mixed  $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

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