BufferedIterator
extends Collection
in package
implements
Countable, Serializable
Creates an iterator from another iterator that will keep the results of the inner iterator in memory, so that results don't have to be re-calculated.
Table of Contents
Interfaces
- Countable
- Serializable
Properties
- $_buffer : SplDoublyLinkedList
- The in-memory cache containing results from previous iterators
- $_current : mixed
- Last record fetched from the inner iterator
- $_finished : bool
- Whether the internal iterator has reached its end.
- $_index : int
- Points to the next record number that should be fetched
- $_key : mixed
- Last key obtained from the inner iterator
- $_started : bool
- Whether the internal iterator's rewind method was already called
Methods
- __construct() : mixed
- Maintains an in-memory cache of the results yielded by the internal iterator.
- __debugInfo() : array<string, mixed>
- Returns an array that can be used to describe the internal state of this object.
- __serialize() : array<string|int, mixed>
- Magic method used for serializing the iterator instance.
- __unserialize() : void
- Magic method used to rebuild the iterator instance.
- append() : CollectionInterface
- appendItem() : CollectionInterface
- avg() : mixed
- buffered() : CollectionInterface
- cartesianProduct() : CollectionInterface
- {@inheritDoc}
- chunk() : CollectionInterface
- chunkWithKeys() : CollectionInterface
- combine() : CollectionInterface
- compile() : CollectionInterface
- contains() : bool
- count() : int
- Returns the number or items in this collection
- countBy() : CollectionInterface
- countKeys() : int
- Returns the number of unique keys in this iterator. This is the same as the number of elements the collection will contain after calling `toArray()`
- current() : mixed
- Returns the current record in the iterator
- each() : mixed
- every() : bool
- extract() : CollectionInterface
- filter() : CollectionInterface
- first() : mixed
- firstMatch() : mixed
- groupBy() : CollectionInterface
- indexBy() : CollectionInterface
- insert() : CollectionInterface
- isEmpty() : bool
- jsonSerialize() : array<string|int, mixed>
- key() : mixed
- Returns the current key in the iterator
- last() : mixed
- lazy() : CollectionInterface
- listNested() : CollectionInterface
- map() : CollectionInterface
- match() : CollectionInterface
- max() : mixed
- median() : mixed
- min() : mixed
- nest() : CollectionInterface
- next() : void
- Advances the iterator pointer to the next element
- prepend() : CollectionInterface
- prependItem() : CollectionInterface
- reduce() : mixed
- reject() : CollectionInterface
- rewind() : void
- Rewinds the collection
- sample() : CollectionInterface
- serialize() : string
- Returns a string representation of this object that can be used to reconstruct it
- shuffle() : CollectionInterface
- skip() : CollectionInterface
- some() : bool
- sortBy() : CollectionInterface
- stopWhen() : CollectionInterface
- sumOf() : mixed
- take() : CollectionInterface
- takeLast() : CollectionInterface
- through() : CollectionInterface
- toArray() : array<string|int, mixed>
- toList() : array<string|int, mixed>
- transpose() : CollectionInterface
- {@inheritDoc}
- unfold() : CollectionInterface
- unserialize() : void
- Unserializes the passed string and rebuilds the BufferedIterator instance
- unwrap() : Traversable
- valid() : bool
- Returns whether the iterator has more elements
- zip() : CollectionInterface
- zipWith() : CollectionInterface
- newCollection() : CollectionInterface
- Returns a new collection.
- optimizeUnwrap() : iterable<string|int, mixed>
- Unwraps this iterator and returns the simplest traversable that can be used for getting the data out
Properties
$_buffer
The in-memory cache containing results from previous iterators
protected
SplDoublyLinkedList
$_buffer
$_current
Last record fetched from the inner iterator
protected
mixed
$_current
$_finished
Whether the internal iterator has reached its end.
protected
bool
$_finished
= false
$_index
Points to the next record number that should be fetched
protected
int
$_index
= 0
$_key
Last key obtained from the inner iterator
protected
mixed
$_key
$_started
Whether the internal iterator's rewind method was already called
protected
bool
$_started
= false
Methods
__construct()
Maintains an in-memory cache of the results yielded by the internal iterator.
public
__construct(iterable<string|int, mixed> $items) : mixed
Parameters
- $items : iterable<string|int, mixed>
-
The items to be filtered.
__debugInfo()
Returns an array that can be used to describe the internal state of this object.
public
__debugInfo() : array<string, mixed>
Return values
array<string, mixed>__serialize()
Magic method used for serializing the iterator instance.
public
__serialize() : array<string|int, mixed>
Return values
array<string|int, mixed>__unserialize()
Magic method used to rebuild the iterator instance.
public
__unserialize(array<string|int, mixed> $data) : void
Parameters
- $data : array<string|int, mixed>
-
Data array.
append()
public
append(mixed $items) : CollectionInterface
Parameters
- $items : mixed
Tags
Return values
CollectionInterfaceappendItem()
public
appendItem(mixed $item[, mixed $key = null ]) : CollectionInterface
Parameters
- $item : mixed
- $key : mixed = null
Tags
Return values
CollectionInterfaceavg()
public
avg([mixed $path = null ]) : mixed
Parameters
- $path : mixed = null
Tags
buffered()
public
buffered() : CollectionInterface
Tags
Return values
CollectionInterfacecartesianProduct()
{@inheritDoc}
public
cartesianProduct([callable|null $operation = null ][, callable|null $filter = null ]) : CollectionInterface
Parameters
- $operation : callable|null = null
-
A callable that allows you to customize the product result.
- $filter : callable|null = null
-
A filtering callback that must return true for a result to be part of the final results.
Tags
Return values
CollectionInterfacechunk()
public
chunk(int $chunkSize) : CollectionInterface
Parameters
- $chunkSize : int
Tags
Return values
CollectionInterfacechunkWithKeys()
public
chunkWithKeys(int $chunkSize[, bool $keepKeys = true ]) : CollectionInterface
Parameters
- $chunkSize : int
- $keepKeys : bool = true
Tags
Return values
CollectionInterfacecombine()
public
combine(mixed $keyPath, mixed $valuePath[, mixed $groupPath = null ]) : CollectionInterface
Parameters
- $keyPath : mixed
- $valuePath : mixed
- $groupPath : mixed = null
Tags
Return values
CollectionInterfacecompile()
public
compile([bool $keepKeys = true ]) : CollectionInterface
Parameters
- $keepKeys : bool = true
Tags
Return values
CollectionInterfacecontains()
public
contains(mixed $value) : bool
Parameters
- $value : mixed
Tags
Return values
boolcount()
Returns the number or items in this collection
public
count() : int
Return values
intcountBy()
public
countBy(mixed $path) : CollectionInterface
Parameters
- $path : mixed
Tags
Return values
CollectionInterfacecountKeys()
Returns the number of unique keys in this iterator. This is the same as the number of elements the collection will contain after calling `toArray()`
public
countKeys() : int
Return values
intcurrent()
Returns the current record in the iterator
public
current() : mixed
Attributes
- #[ReturnTypeWillChange]
each()
public
each(callable $callback) : mixed
Parameters
- $callback : callable
Tags
every()
public
every(callable $callback) : bool
Parameters
- $callback : callable
Tags
Return values
boolextract()
public
extract(mixed $path) : CollectionInterface
Parameters
- $path : mixed
Tags
Return values
CollectionInterfacefilter()
public
filter([callable|null $callback = null ]) : CollectionInterface
Parameters
- $callback : callable|null = null
Tags
Return values
CollectionInterfacefirst()
public
first() : mixed
Tags
firstMatch()
public
firstMatch(array<string|int, mixed> $conditions) : mixed
Parameters
- $conditions : array<string|int, mixed>
Tags
groupBy()
public
groupBy(mixed $path) : CollectionInterface
Parameters
- $path : mixed
Tags
Return values
CollectionInterfaceindexBy()
public
indexBy(mixed $path) : CollectionInterface
Parameters
- $path : mixed
Tags
Return values
CollectionInterfaceinsert()
public
insert(string $path, mixed $values) : CollectionInterface
Parameters
- $path : string
- $values : mixed
Tags
Return values
CollectionInterfaceisEmpty()
public
isEmpty() : bool
Tags
Return values
booljsonSerialize()
public
jsonSerialize() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed>key()
Returns the current key in the iterator
public
key() : mixed
Attributes
- #[ReturnTypeWillChange]
last()
public
last() : mixed
Tags
lazy()
public
lazy() : CollectionInterface
Tags
Return values
CollectionInterfacelistNested()
public
listNested([mixed $order = 'desc' ][, mixed $nestingKey = 'children' ]) : CollectionInterface
Parameters
- $order : mixed = 'desc'
- $nestingKey : mixed = 'children'
Tags
Return values
CollectionInterfacemap()
public
map(callable $callback) : CollectionInterface
Parameters
- $callback : callable
Tags
Return values
CollectionInterfacematch()
public
match(array<string|int, mixed> $conditions) : CollectionInterface
Parameters
- $conditions : array<string|int, mixed>
Tags
Return values
CollectionInterfacemax()
public
max(mixed $path[, int $sort = SORT_NUMERIC ]) : mixed
Parameters
- $path : mixed
- $sort : int = SORT_NUMERIC
Tags
median()
public
median([mixed $path = null ]) : mixed
Parameters
- $path : mixed = null
Tags
min()
public
min(mixed $path[, int $sort = SORT_NUMERIC ]) : mixed
Parameters
- $path : mixed
- $sort : int = SORT_NUMERIC
Tags
nest()
public
nest(mixed $idPath, mixed $parentPath[, string $nestingKey = 'children' ]) : CollectionInterface
Parameters
- $idPath : mixed
- $parentPath : mixed
- $nestingKey : string = 'children'
Tags
Return values
CollectionInterfacenext()
Advances the iterator pointer to the next element
public
next() : void
prepend()
public
prepend(mixed $items) : CollectionInterface
Parameters
- $items : mixed
Tags
Return values
CollectionInterfaceprependItem()
public
prependItem(mixed $item[, mixed $key = null ]) : CollectionInterface
Parameters
- $item : mixed
- $key : mixed = null
Tags
Return values
CollectionInterfacereduce()
public
reduce(callable $callback[, mixed $initial = null ]) : mixed
Parameters
- $callback : callable
- $initial : mixed = null
Tags
reject()
public
reject(callable $callback) : CollectionInterface
Parameters
- $callback : callable
Tags
Return values
CollectionInterfacerewind()
Rewinds the collection
public
rewind() : void
sample()
public
sample([int $length = 10 ]) : CollectionInterface
Parameters
- $length : int = 10
Tags
Return values
CollectionInterfaceserialize()
Returns a string representation of this object that can be used to reconstruct it
public
serialize() : string
Return values
stringshuffle()
public
shuffle() : CollectionInterface
Tags
Return values
CollectionInterfaceskip()
public
skip(int $length) : CollectionInterface
Parameters
- $length : int
Tags
Return values
CollectionInterfacesome()
public
some(callable $callback) : bool
Parameters
- $callback : callable
Tags
Return values
boolsortBy()
public
sortBy(mixed $path[, int $order = SORT_DESC ][, int $sort = SORT_NUMERIC ]) : CollectionInterface
Parameters
- $path : mixed
- $order : int = SORT_DESC
- $sort : int = SORT_NUMERIC
Tags
Return values
CollectionInterfacestopWhen()
public
stopWhen(mixed $condition) : CollectionInterface
Parameters
- $condition : mixed
Tags
Return values
CollectionInterfacesumOf()
public
sumOf([mixed $path = null ]) : mixed
Parameters
- $path : mixed = null
Tags
take()
public
take([int $length = 1 ][, int $offset = 0 ]) : CollectionInterface
Parameters
- $length : int = 1
- $offset : int = 0
Tags
Return values
CollectionInterfacetakeLast()
public
takeLast(int $length) : CollectionInterface
Parameters
- $length : int
Tags
Return values
CollectionInterfacethrough()
public
through(callable $callback) : CollectionInterface
Parameters
- $callback : callable
Tags
Return values
CollectionInterfacetoArray()
public
toArray([bool $keepKeys = true ]) : array<string|int, mixed>
Parameters
- $keepKeys : bool = true
Tags
Return values
array<string|int, mixed>toList()
public
toList() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed>transpose()
{@inheritDoc}
public
transpose() : CollectionInterface
Tags
Return values
CollectionInterfaceunfold()
public
unfold([callable|null $callback = null ]) : CollectionInterface
Parameters
- $callback : callable|null = null
Tags
Return values
CollectionInterfaceunserialize()
Unserializes the passed string and rebuilds the BufferedIterator instance
public
unserialize(string $collection) : void
Parameters
- $collection : string
-
The serialized buffer iterator
unwrap()
public
unwrap() : Traversable
Tags
Return values
Traversablevalid()
Returns whether the iterator has more elements
public
valid() : bool
Return values
boolzip()
public
zip(iterable<string|int, mixed> $items) : CollectionInterface
Parameters
- $items : iterable<string|int, mixed>
Tags
Return values
CollectionInterfacezipWith()
public
zipWith(iterable<string|int, mixed> $items, mixed $callback) : CollectionInterface
Parameters
- $items : iterable<string|int, mixed>
- $callback : mixed
Tags
Return values
CollectionInterfacenewCollection()
Returns a new collection.
protected
newCollection(mixed ...$args) : CollectionInterface
Allows classes which use this trait to determine their own type of returned collection interface
Parameters
- $args : mixed
-
Constructor arguments.
Return values
CollectionInterfaceoptimizeUnwrap()
Unwraps this iterator and returns the simplest traversable that can be used for getting the data out
protected
optimizeUnwrap() : iterable<string|int, mixed>