/var/www/vhosts/ihelp.ro/httpdocs/vendor/cakephp/cakephp/src/Collection/Iterator
Edit: /var/www/vhosts/ihelp.ro/httpdocs/vendor/cakephp/cakephp/src/Collection/Iterator/TreeIterator.php (3488B)
_mode = $mode;
}
/**
* 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;
* });
* ```
*
* @param callable|string $valuePath The property to extract or a callable to return
* the display value
* @param callable|string|null $keyPath The property to use as iteration key or a
* callable returning the key value.
* @param string $spacer The string to use for prefixing the values according to
* their depth in the tree
* @return \Cake\Collection\Iterator\TreePrinter
*/
public function printer($valuePath, $keyPath = null, $spacer = '__')
{
if (!$keyPath) {
$counter = 0;
$keyPath = function () use (&$counter) {
return $counter++;
};
}
return new TreePrinter(
$this->getInnerIterator(),
$valuePath,
$keyPath,
$spacer,
$this->_mode
);
}
}