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