Stream implements StreamInterface

Default implementation for the StreamInterface of the PSR-7 standard Acts mainly as a decorator class for streams/resources.

Highly inspired by https://github.com/phly/http/

Internal

Note that this is not public API yet.

Table of Contents

Interfaces

StreamInterface

Properties

$resource  : resource|null
The actual PHP resource
$stream  : string|resource

Methods

__construct()  : mixed
Constructor setting up the PHP resource
__toString()  : string
Reads all data from the stream into a string, from the beginning to end.
attach()  : mixed
Attach a new stream/resource to the instance.
close()  : mixed
Closes the stream and any underlying resources.
detach()  : resource|null
Separates any underlying resources from the stream.
eof()  : bool
Returns true if the stream is at the end of the stream.
getContents()  : string
Returns the remaining contents in a string
getMetadata()  : array<string|int, mixed>|mixed|null
Get stream metadata as an associative array or retrieve a specific key.
getSize()  : int|null
Get the size of the stream if known.
isReadable()  : bool
Returns whether or not the stream is readable.
isSeekable()  : bool
Returns whether or not the stream is seekable.
isWritable()  : bool
Returns whether or not the stream is writable.
read()  : string
Read data from the stream.
rewind()  : mixed
Seek to the beginning of the stream.
seek()  : mixed
Seek to a position in the stream.
tell()  : int
Returns the current position of the file read/write pointer
write()  : int
Write data to the stream.

Properties

$resource

The actual PHP resource

protected resource|null $resource

Methods

__construct()

Constructor setting up the PHP resource

public __construct(string|resource $stream[, string $mode = 'r' ]) : mixed
Parameters
$stream : string|resource
$mode : string = 'r'

Mode with which to open stream

Tags
throws
InvalidArgumentException

__toString()

Reads all data from the stream into a string, from the beginning to end.

public __toString() : string

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.

Tags
see
https://php.net/manual/en/language.oop5.magic.php#object.tostring
Return values
string

attach()

Attach a new stream/resource to the instance.

public attach(string|resource $resource[, string $mode = 'r' ]) : mixed
Parameters
$resource : string|resource
$mode : string = 'r'
Tags
throws
InvalidArgumentException

for stream identifier that cannot be cast to a resource

throws
InvalidArgumentException

for non-resource stream

close()

Closes the stream and any underlying resources.

public close() : mixed

detach()

Separates any underlying resources from the stream.

public detach() : resource|null

After the stream has been detached, the stream is in an unusable state.

Return values
resource|null —

Underlying PHP stream, if any

eof()

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

public eof() : bool
Return values
bool

getContents()

Returns the remaining contents in a string

public getContents() : string
Tags
throws
RuntimeException

if unable to read or an error occurs while reading.

Return values
string

getMetadata()

Get stream metadata as an associative array or retrieve a specific key.

public getMetadata([string $key = null ]) : array<string|int, mixed>|mixed|null

The keys returned are identical to the keys returned from PHP's stream_get_meta_data() function.

Parameters
$key : string = null

Specific metadata to retrieve.

Tags
link
https://php.net/manual/en/function.stream-get-meta-data.php
Return values
array<string|int, mixed>|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.

getSize()

Get the size of the stream if known.

public getSize() : int|null
Return values
int|null —

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

isReadable()

Returns whether or not the stream is readable.

public isReadable() : bool
Return values
bool

isSeekable()

Returns whether or not the stream is seekable.

public isSeekable() : bool
Return values
bool

isWritable()

Returns whether or not the stream is writable.

public isWritable() : bool
Return values
bool

read()

Read data from the stream.

public read(int $length) : string
Parameters
$length : int

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.

Tags
throws
RuntimeException

if an error occurs.

Return values
string —

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

seek()

Seek to a position in the stream.

public seek(int $offset[, int $whence = SEEK_SET ]) : mixed
Parameters
$offset : int

Stream offset

$whence : int = SEEK_SET

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.

Tags
link
http://www.php.net/manual/en/function.fseek.php
throws
RuntimeException

on failure.

tell()

Returns the current position of the file read/write pointer

public tell() : int
Tags
throws
RuntimeException

on error.

Return values
int —

Position of the file pointer

write()

Write data to the stream.

public write(string $string) : int
Parameters
$string : string

The string that is to be written.

Tags
throws
RuntimeException

on failure.

Return values
int —

Returns the number of bytes written to the stream.

On this page

Search results