Class TreePrinter
Iterator for flattening elements in a tree structure while adding some visual markers for their relative position in the tree
Property Summary
-
$_current protected
mixed
Cached value for the current iteration element
-
$_key protected
callable
A callable to generate the iteration key
-
$_spacer protected
string
The string to use for prefixing the values according to their depth in the tree.
-
$_value protected
callable
A callable to extract the display value
Method Summary
-
__construct() public
Constructor
-
_createMatcherFilter() protected
Returns a callable that receives a value and will return whether or not it matches certain condition.
-
_extract() protected
Returns a column from $data that can be extracted by iterating over the column names contained in $path. It will return arrays for elements in represented with
{*}
-
_fetchCurrent() protected
Returns the current iteration element and caches its value
-
_propertyExtractor() protected
Returns a callable that can be used to extract a property or column from an array or object based on a dot separated path.
-
_simpleExtract() protected
Returns a column from $data that can be extracted by iterating over the column names contained in $path
-
_unwrap() public deprecated
Backwards compatible wrapper for unwrap()
-
append() public
{@inheritDoc}
-
appendItem() public
{@inheritDoc}
-
avg() public
{@inheritDoc}
-
buffered() public
{@inheritDoc}
-
cartesianProduct() public
-
chunk() public
{@inheritDoc}
-
chunkWithKeys() public
{@inheritDoc}
-
combine() public
{@inheritDoc}
-
compile() public
{@inheritDoc}
-
contains() public
{@inheritDoc}
-
count() public
{@inheritDoc}
-
countBy() public
{@inheritDoc}
-
countKeys() public
{@inheritDoc}
-
current() public
Returns the current iteration value
-
each() public
{@inheritDoc}
-
every() public
{@inheritDoc}
-
extract() public
{@inheritDoc}
-
filter() public
{@inheritDoc}
-
first() public
{@inheritDoc}
-
firstMatch() public
{@inheritDoc}
-
groupBy() public
{@inheritDoc}
-
indexBy() public
{@inheritDoc}
-
insert() public
{@inheritDoc}
-
isEmpty() public
{@inheritDoc}
-
jsonSerialize() public
{@inheritDoc}
-
key() public
Returns the current iteration key
-
last() public
{@inheritDoc}
-
lazy() public
{@inheritDoc}
-
listNested() public
{@inheritDoc}
-
map() public
{@inheritDoc}
-
match() public
{@inheritDoc}
-
max() public
{@inheritDoc}
-
median() public
{@inheritDoc}
-
min() public
{@inheritDoc}
-
nest() public
{@inheritDoc}
-
newCollection() protected
Returns a new collection.
-
next() public
Advances the cursor one position
-
optimizeUnwrap() protected
Unwraps this iterator and returns the simplest traversable that can be used for getting the data out
-
prepend() public
{@inheritDoc}
-
prependItem() public
{@inheritDoc}
-
reduce() public
{@inheritDoc}
-
reject() public
{@inheritDoc}
-
sample() public
{@inheritDoc}
-
shuffle() public
{@inheritDoc}
-
skip() public
{@inheritDoc}
-
some() public
{@inheritDoc}
-
sortBy() public
{@inheritDoc}
-
stopWhen() public
{@inheritDoc}
-
sumOf() public
{@inheritDoc}
-
take() public
{@inheritDoc}
-
takeLast() public
{@inheritDoc}
-
through() public
{@inheritDoc}
-
toArray() public
{@inheritDoc}
-
toList() public
{@inheritDoc}
-
transpose() public
{@inheritDoc}
-
unfold() public
{@inheritDoc}
-
unwrap() public
{@inheritDoc}
-
zip() public
{@inheritDoc}
-
zipWith() public
{@inheritDoc}
Method Detail
__construct() ¶ public
__construct(RecursiveIterator $items, string|callable $valuePath, string|callable $keyPath, string $spacer, int $mode = RecursiveIteratorIterator::SELF_FIRST)
Constructor
Parameters
-
RecursiveIterator
$items The iterator to flatten.
-
string|callable
$valuePath The property to extract or a callable to return the display value.
-
string|callable
$keyPath The property to use as iteration key or a callable returning the key value.
-
string
$spacer The string to use for prefixing the values according to their depth in the tree.
-
int
$mode optional Iterator mode.
_createMatcherFilter() ¶ protected
_createMatcherFilter(array $conditions): Closure
Returns a callable that receives a value and will return whether or not it matches certain condition.
Parameters
-
array
$conditions A key-value list of conditions to match where the key is the property path to get from the current item and the value is the value to be compared the item with.
Returns
Closure
_extract() ¶ protected
_extract(array|ArrayAccess $data, string[] $path): mixed
Returns a column from $data that can be extracted
by iterating over the column names contained in $path.
It will return arrays for elements in represented with {*}
Parameters
-
array|ArrayAccess
$data Data.
-
string[]
$path Path to extract from.
Returns
mixed
_fetchCurrent() ¶ protected
_fetchCurrent(): mixed
Returns the current iteration element and caches its value
Returns
mixed
_propertyExtractor() ¶ protected
_propertyExtractor(string|callable $callback): callable
Returns a callable that can be used to extract a property or column from an array or object based on a dot separated path.
Parameters
-
string|callable
$callback A dot separated path of column to follow so that the final one can be returned or a callable that will take care of doing that.
Returns
callable
_simpleExtract() ¶ protected
_simpleExtract(array|ArrayAccess $data, string[] $path): mixed
Returns a column from $data that can be extracted by iterating over the column names contained in $path
Parameters
-
array|ArrayAccess
$data Data.
-
string[]
$path Path to extract from.
Returns
mixed
_unwrap() ¶ public
_unwrap(): Traversable
Backwards compatible wrapper for unwrap()
Returns
Traversable
appendItem() ¶ public
appendItem(mixed $item, mixed $key = null)
{@inheritDoc}
Parameters
-
$item
-
$key optional
buffered() ¶ public
buffered(): Cake\Collection\Iterator\BufferedIterator
{@inheritDoc}
Returns
Cake\Collection\Iterator\BufferedIterator
cartesianProduct() ¶ public
cartesianProduct(callable|null $operation = null, callable|null $filter = null): Cake\Collection\CollectionInterface
Parameters
-
callable|null
$operation optional Operation
-
callable|null
$filter optional Filter
Returns
Cake\Collection\CollectionInterface
Throws
LogicException
chunkWithKeys() ¶ public
chunkWithKeys(mixed $chunkSize, mixed $preserveKeys = true)
{@inheritDoc}
Parameters
-
$chunkSize
-
$preserveKeys optional
combine() ¶ public
combine(mixed $keyPath, mixed $valuePath, mixed $groupPath = null)
{@inheritDoc}
Parameters
-
$keyPath
-
$valuePath
-
$groupPath optional
compile() ¶ public
compile(mixed $preserveKeys = true)
{@inheritDoc}
Parameters
-
$preserveKeys optional
filter() ¶ public
filter(callable $c = null): Cake\Collection\Iterator\FilterIterator
{@inheritDoc}
Parameters
-
callable
$c optional
Returns
Cake\Collection\Iterator\FilterIterator
insert() ¶ public
insert(mixed $path, mixed $values): Cake\Collection\Iterator\InsertIterator
{@inheritDoc}
Parameters
-
$path
-
$values
Returns
Cake\Collection\Iterator\InsertIterator
listNested() ¶ public
listNested(mixed $dir = 'desc', mixed $nestingKey = 'children'): Cake\Collection\Iterator\TreeIterator
{@inheritDoc}
Parameters
-
$dir optional
-
$nestingKey optional
Returns
Cake\Collection\Iterator\TreeIterator
map() ¶ public
map(callable $c): Cake\Collection\Iterator\ReplaceIterator
{@inheritDoc}
Parameters
-
callable
$c
Returns
Cake\Collection\Iterator\ReplaceIterator
max() ¶ public
max(mixed $callback, mixed $type = \SORT_NUMERIC)
{@inheritDoc}
Parameters
-
$callback
-
$type optional
min() ¶ public
min(mixed $callback, mixed $type = \SORT_NUMERIC)
{@inheritDoc}
Parameters
-
$callback
-
$type optional
nest() ¶ public
nest(mixed $idPath, mixed $parentPath, mixed $nestingKey = 'children')
{@inheritDoc}
Parameters
-
$idPath
-
$parentPath
-
$nestingKey optional
newCollection() ¶ protected
newCollection(mixed ...$args): Cake\Collection\CollectionInterface
Returns a new collection.
Allows classes which use this trait to determine their own type of returned collection interface
Parameters
-
mixed
...$args Constructor arguments.
Returns
Cake\Collection\CollectionInterface
optimizeUnwrap() ¶ protected
optimizeUnwrap(): Traversable|array
Unwraps this iterator and returns the simplest traversable that can be used for getting the data out
Returns
Traversable|array
prependItem() ¶ public
prependItem(mixed $item, mixed $key = null)
{@inheritDoc}
Parameters
-
$item
-
$key optional
reduce() ¶ public
reduce(callable $c, mixed $zero = null)
{@inheritDoc}
Parameters
-
callable
$c -
$zero optional
reject() ¶ public
reject(callable $c): Cake\Collection\Iterator\FilterIterator
{@inheritDoc}
Parameters
-
callable
$c
Returns
Cake\Collection\Iterator\FilterIterator
sortBy() ¶ public
sortBy(mixed $callback, mixed $dir = \SORT_DESC, mixed $type = \SORT_NUMERIC)
{@inheritDoc}
Parameters
-
$callback
-
$dir optional
-
$type optional
stopWhen() ¶ public
stopWhen(mixed $condition): Cake\Collection\Iterator\StoppableIterator
{@inheritDoc}
Parameters
-
$condition
Returns
Cake\Collection\Iterator\StoppableIterator
take() ¶ public
take(mixed $size = 1, mixed $from = 0)
{@inheritDoc}
Parameters
-
$size optional
-
$from optional
toArray() ¶ public
toArray(mixed $preserveKeys = true)
{@inheritDoc}
Parameters
-
$preserveKeys optional
transpose() ¶ public
transpose(): Cake\Collection\CollectionInterface
{@inheritDoc}
Returns
Cake\Collection\CollectionInterface
Throws
LogicException
unfold() ¶ public
unfold(callable $transformer = null)
{@inheritDoc}
Parameters
-
callable
$transformer optional
Property Detail
$_spacer ¶ protected
The string to use for prefixing the values according to their depth in the tree.
Type
string