CakePHP
  • Documentation
    • Book
    • API
    • Videos
    • Reporting Security Issues
    • Privacy Policy
    • Logos & Trademarks
  • Business Solutions
  • Swag
  • Road Trip
  • Team
  • Community
    • Community
    • Get Involved
    • Issues (Github)
    • Bakery
    • Featured Resources
    • Training
    • Meetups
    • My CakePHP
    • CakeFest
    • Newsletter
    • Linkedin
    • YouTube
    • Facebook
    • Twitter
    • Mastodon
    • Help & Support
    • Forum
    • Stack Overflow
    • IRC
    • Slack
    • Paid Support
CakePHP

C CakePHP 3.3 Red Velvet API

  • Project:
    • CakePHP
      • CakePHP
      • Authentication
      • Authorization
      • Chronos
      • Elastic Search
      • Queue
  • Version:
    • 3.3
      • 5.2
      • 5.1
      • 5.0
      • 4.6
      • 4.5
      • 4.4
      • 4.3
      • 4.2
      • 4.1
      • 4.0
      • 3.10
      • 3.9
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

Namespaces

  • Global
  • Cake
    • Auth
    • Cache
    • Collection
      • Iterator
    • Console
    • Controller
    • Core
    • Database
    • Datasource
    • Error
    • Event
    • Filesystem
    • Form
    • Http
    • I18n
    • Log
    • Mailer
    • Network
    • ORM
    • Routing
    • Shell
    • TestSuite
    • Utility
    • Validation
    • View

Class TreeIterator

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

Namespace: Cake\Collection\Iterator

Property Summary

  • $_mode protected
    int

    The iteration mode

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 {*}

  • _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}

  • buffered() public

    {@inheritDoc}

  • cartesianProduct() public

    {@inheritDoc}

  • chunk() public

    {@inheritDoc}

  • combine() public

    {@inheritDoc}

  • compile() public

    {@inheritDoc}

  • contains() public

    {@inheritDoc}

  • countBy() public

    {@inheritDoc}

  • 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}

  • last() public

    {@inheritDoc}

  • listNested() public

    {@inheritDoc}

  • map() public

    {@inheritDoc}

  • match() public

    {@inheritDoc}

  • max() public

    {@inheritDoc}

  • min() public

    {@inheritDoc}

  • nest() public

    {@inheritDoc}

  • printer() public

    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() 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}

  • 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, int $mode = RecursiveIteratorIterator::SELF_FIRST, int $flags = 0)

Constructor

Parameters
RecursiveIterator $items

The iterator to flatten.

int $mode optional

Iterator mode.

int $flags optional

Iterator flags.

_createMatcherFilter() ¶ protected

_createMatcherFilter(array $conditions): callable

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
callable

_extract() ¶ protected

_extract(array|ArrayAccess $data, array $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.

array $path

Path to extract from.

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, array $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.

array $path

Path to extract from.

Returns
mixed

_unwrap() ¶ public

_unwrap(): Iterator

Backwards compatible wrapper for unwrap()

Returns
Iterator

append() ¶ public

append(mixed $items)

{@inheritDoc}

Parameters
$items

buffered() ¶ public

buffered(): Cake\Collection\Iterator\BufferedIterator

{@inheritDoc}

Returns
Cake\Collection\Iterator\BufferedIterator

cartesianProduct() ¶ public

cartesianProduct(callable $operation = null, callable $filter = null): Cake\Collection\CollectionInterface

{@inheritDoc}

Parameters
callable $operation optional
callable $filter optional
Returns
Cake\Collection\CollectionInterface

chunk() ¶ public

chunk(mixed $chunkSize)

{@inheritDoc}

Parameters
$chunkSize

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

contains() ¶ public

contains(mixed $value)

{@inheritDoc}

Parameters
$value

countBy() ¶ public

countBy(mixed $callback)

{@inheritDoc}

Parameters
$callback

each() ¶ public

each(callable $c)

{@inheritDoc}

Parameters
callable $c

every() ¶ public

every(callable $c)

{@inheritDoc}

Parameters
callable $c

extract() ¶ public

extract(mixed $matcher)

{@inheritDoc}

Parameters
$matcher

filter() ¶ public

filter(callable $c = null): Cake\Collection\Iterator\FilterIterator

{@inheritDoc}

Parameters
callable $c optional
Returns
Cake\Collection\Iterator\FilterIterator

first() ¶ public

first()

{@inheritDoc}

firstMatch() ¶ public

firstMatch(array $conditions)

{@inheritDoc}

Parameters
array $conditions

groupBy() ¶ public

groupBy(mixed $callback)

{@inheritDoc}

Parameters
$callback

indexBy() ¶ public

indexBy(mixed $callback)

{@inheritDoc}

Parameters
$callback

insert() ¶ public

insert(mixed $path, mixed $values): Cake\Collection\Iterator\InsertIterator

{@inheritDoc}

Parameters
$path
$values
Returns
Cake\Collection\Iterator\InsertIterator

isEmpty() ¶ public

isEmpty()

{@inheritDoc}

jsonSerialize() ¶ public

jsonSerialize()

{@inheritDoc}

last() ¶ public

last()

{@inheritDoc}

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

match() ¶ public

match(array $conditions)

{@inheritDoc}

Parameters
array $conditions

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

printer() ¶ public

printer(string|callable $valuePath, string|callable|null $keyPath = null, string $spacer = '__'): Cake\Collection\Iterator\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.

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
string|callable $valuePath

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

string|callable|null $keyPath optional

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

string $spacer optional

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

Returns
Cake\Collection\Iterator\TreePrinter

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

sample() ¶ public

sample(mixed $size = 10)

{@inheritDoc}

Parameters
$size optional

shuffle() ¶ public

shuffle()

{@inheritDoc}

skip() ¶ public

skip(mixed $howMany)

{@inheritDoc}

Parameters
$howMany

some() ¶ public

some(callable $c)

{@inheritDoc}

Parameters
callable $c

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

sumOf() ¶ public

sumOf(mixed $matcher = null)

{@inheritDoc}

Parameters
$matcher optional

take() ¶ public

take(mixed $size = 1, mixed $from = 0)

{@inheritDoc}

Parameters
$size optional
$from optional

through() ¶ public

through(callable $handler)

{@inheritDoc}

Parameters
callable $handler

toArray() ¶ public

toArray(mixed $preserveKeys = true)

{@inheritDoc}

Parameters
$preserveKeys optional

toList() ¶ public

toList()

{@inheritDoc}

transpose() ¶ public

transpose(): Cake\Collection\CollectionInterface

{@inheritDoc}

Returns
Cake\Collection\CollectionInterface

unfold() ¶ public

unfold(callable $transformer = null)

{@inheritDoc}

Parameters
callable $transformer optional

unwrap() ¶ public

unwrap()

{@inheritDoc}

zip() ¶ public

zip(mixed $items)

{@inheritDoc}

Parameters
$items

zipWith() ¶ public

zipWith(mixed $items, mixed $callable)

{@inheritDoc}

Parameters
$items
$callable

Property Detail

$_mode ¶ protected

The iteration mode

Type
int
OpenHub
Pingping
Linode
  • Business Solutions
  • Showcase
  • Documentation
  • Book
  • API
  • Videos
  • Reporting Security Issues
  • Privacy Policy
  • Logos & Trademarks
  • Community
  • Get Involved
  • Issues (Github)
  • Bakery
  • Featured Resources
  • Training
  • Meetups
  • My CakePHP
  • CakeFest
  • Newsletter
  • Linkedin
  • YouTube
  • Facebook
  • Twitter
  • Mastodon
  • Help & Support
  • Forum
  • Stack Overflow
  • IRC
  • Slack
  • Paid Support

Generated using CakePHP API Docs