Flow PHP

BlockCachedSourceStream implements SourceStream

FinalYes

Serves read() from the last two fixed-size blocks it fetched, so many small reads that walk a region forward - a scan probing candidate positions - cost one inner read per block instead of one per call.

Interfaces

SourceStream

Methods

__construct()  : mixed
close()  : void
content()  : string
isOpen()  : bool
iterate()  : Generator<string|int, string>
path()  : Path
read()  : string
readLines()  : Generator<string|int, string>
Yields the stream's lines with the separator stripped: a 0-byte stream yields nothing, a separator that ends the stream opens no further line, and every other empty line is yielded as ''. The separator is matched byte for byte; no "\r" is stripped. "x\ny\n" -> ["x","y"], "x\n\ny" -> ["x","","y"], "x\n\n" -> ["x",""], "x\r\ny" -> ["x\r","y"], "" -> [].
size()  : null|int

Methods

iterate()

public iterate([int $length = 1 ]) : Generator<string|int, string>
Parameters
$length : int = 1

number of bytes to read from the stream

Return values
Generator<string|int, string>

read()

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

number of bytes to read from the stream

$offset : int

a negative offset counts from the end and bypasses the cache

Return values
string

readLines()

Yields the stream's lines with the separator stripped: a 0-byte stream yields nothing, a separator that ends the stream opens no further line, and every other empty line is yielded as ''. The separator is matched byte for byte; no "\r" is stripped. "x\ny\n" -> ["x","y"], "x\n\ny" -> ["x","","y"], "x\n\n" -> ["x",""], "x\r\ny" -> ["x\r","y"], "" -> [].

public readLines([string $separator = "\n" ][, int|null $length = null ]) : Generator<string|int, string>
Parameters
$separator : string = "\n"

multi-byte included

$length : int|null = null

bytes read per step - a read-chunk hint, never a cap on line length; null lets the implementation choose

Return values
Generator<string|int, string>
On this page

Search results