Fr3nch13/CakePHP Utilities

TreeIterator extends RecursiveIteratorIterator
in package
implements CollectionInterface uses CollectionTrait

A Recursive iterator used to flatten nested structures and also exposes all Collection methods

Table of Contents

Interfaces

CollectionInterface
Describes the methods a Collection should implement. A collection is an immutable list of elements exposing a number of traversing and extracting method for generating other collections.

Properties

$_mode  : int
The iteration mode

Methods

__construct()  : mixed
Constructor
append()  : CollectionInterface
appendItem()  : CollectionInterface
avg()  : mixed
buffered()  : CollectionInterface
cartesianProduct()  : CollectionInterface
{@inheritDoc}
chunk()  : CollectionInterface
chunkWithKeys()  : CollectionInterface
combine()  : CollectionInterface
compile()  : CollectionInterface
contains()  : bool
count()  : int
countBy()  : CollectionInterface
countKeys()  : int
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>
last()  : mixed
lazy()  : CollectionInterface
listNested()  : CollectionInterface
map()  : CollectionInterface
match()  : CollectionInterface
max()  : mixed
median()  : mixed
min()  : mixed
nest()  : CollectionInterface
prepend()  : CollectionInterface
prependItem()  : CollectionInterface
printer()  : TreePrinter
Returns another iterator which will return the values ready to be displayed to a user. It does so by extracting one property from each of the elements and prefixing it with a spacer so that the relative position in the tree can be visualized.
reduce()  : mixed
reject()  : CollectionInterface
sample()  : CollectionInterface
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
unwrap()  : Traversable
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

Methods

__construct()

Constructor

public __construct(RecursiveIterator $items[, int $mode = RecursiveIteratorIterator::SELF_FIRST ][, int $flags = 0 ]) : mixed
Parameters
$items : RecursiveIterator

The iterator to flatten.

$mode : int = RecursiveIteratorIterator::SELF_FIRST

Iterator mode.

$flags : int = 0

Iterator flags.

avg()

public avg([mixed $path = null ]) : mixed
Parameters
$path : mixed = null
Tags
inheritDoc

cartesianProduct()

{@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
throws
LogicException
Return values
CollectionInterface

contains()

public contains(mixed $value) : bool
Parameters
$value : mixed
Tags
inheritDoc
Return values
bool

countKeys()

public countKeys() : int
Tags
inheritDoc
Return values
int

each()

public each(callable $callback) : mixed
Parameters
$callback : callable
Tags
inheritDoc

every()

public every(callable $callback) : bool
Parameters
$callback : callable
Tags
inheritDoc
Return values
bool

firstMatch()

public firstMatch(array<string|int, mixed> $conditions) : mixed
Parameters
$conditions : array<string|int, mixed>
Tags
inheritDoc

isEmpty()

public isEmpty() : bool
Tags
inheritDoc
Return values
bool

jsonSerialize()

public jsonSerialize() : array<string|int, mixed>
Tags
inheritDoc
Return values
array<string|int, mixed>

max()

public max(mixed $path[, int $sort = SORT_NUMERIC ]) : mixed
Parameters
$path : mixed
$sort : int = SORT_NUMERIC
Tags
inheritDoc

median()

public median([mixed $path = null ]) : mixed
Parameters
$path : mixed = null
Tags
inheritDoc

min()

public min(mixed $path[, int $sort = SORT_NUMERIC ]) : mixed
Parameters
$path : mixed
$sort : int = SORT_NUMERIC
Tags
inheritDoc

printer()

Returns another iterator which will return the values ready to be displayed to a user. It does so by extracting one property from each of the elements and prefixing it with a spacer so that the relative position in the tree can be visualized.

public printer(callable|string $valuePath[, callable|string|null $keyPath = null ][, string $spacer = '__' ]) : TreePrinter

Both $valuePath and $keyPath can be a string with a property name to extract or a dot separated path of properties that should be followed to get the last one in the path.

Alternatively, $valuePath and $keyPath can be callable functions. They will get the current element as first parameter, the current iteration key as second parameter, and the iterator instance as third argument.

Example

 $printer = (new Collection($treeStructure))->listNested()->printer('name');

Using a closure:

 $printer = (new Collection($treeStructure))
     ->listNested()
     ->printer(function ($item, $key, $iterator) {
         return $item->name;
     });
Parameters
$valuePath : callable|string

The property to extract or a callable to return the display value

$keyPath : callable|string|null = null

The property to use as iteration key or a callable returning the key value.

$spacer : string = '__'

The string to use for prefixing the values according to their depth in the tree

Return values
TreePrinter

reduce()

public reduce(callable $callback[, mixed $initial = null ]) : mixed
Parameters
$callback : callable
$initial : mixed = null
Tags
inheritDoc

some()

public some(callable $callback) : bool
Parameters
$callback : callable
Tags
inheritDoc
Return values
bool

sumOf()

public sumOf([mixed $path = null ]) : mixed
Parameters
$path : mixed = null
Tags
inheritDoc

toArray()

public toArray([bool $keepKeys = true ]) : array<string|int, mixed>
Parameters
$keepKeys : bool = true
Tags
inheritDoc
Return values
array<string|int, mixed>

toList()

public toList() : array<string|int, mixed>
Tags
inheritDoc
Return values
array<string|int, mixed>

unwrap()

public unwrap() : Traversable
Tags
inheritDoc
Return values
Traversable

newCollection()

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
CollectionInterface

optimizeUnwrap()

Unwraps this iterator and returns the simplest traversable that can be used for getting the data out

protected optimizeUnwrap() : iterable<string|int, mixed>
Return values
iterable<string|int, mixed>

        
On this page

Search results