Класс TreeIterator
Рекурсивный итератор, используемый для сплющивания вложенных структур, а также предоставляет все методы Collection
- RecursiveIteratorIterator реализует Iterator, Traversable, OuterIterator
-
Cake\Collection\Iterator\TreeIterator использует Cake\Collection\CollectionTrait
Унаследованные константы
-
CATCH_GET_CHILD,CHILD_FIRST,LEAVES_ONLY,SELF_FIRST
Краткое описание свойств
-
$_modeprotectedРежим итерацииinteger
Краткое описание методов
- __construct() publicКонструктор
- printer() public
Возвращает другой итератор, который будет возвращать значения, готовые к отображению пользователю. Это делается путём извлечения одного свойства из каждого элемента и добавления префикса-разделителя, чтобы можно было визуализировать относительное положение в дереве.
Подробное описание методов
__construct()source public
__construct( RecursiveIterator $items , integer $mode = Cake\Collection\Iterator\RecursiveIteratorIterator::SELF_FIRST , integer $flags = 0 )
Конструктор
Параметры
- RecursiveIterator
$items - Итератор для сплющивания.
- целое число
$modeнеобязательно Cake\Collection\Iterator\RecursiveIteratorIterator::SELF_FIRST - Режим итерации.
- целое число
$flagsнеобязательно 0 - Флаги итератора.
Переопределяет
RecursiveIteratorIterator::__construct() printer()source public
printer( string|callable $valuePath , string|callable|null $keyPath = null , string $spacer = '__' )
Возвращает другой итератор, который будет возвращать значения, готовые к отображению пользователю. Это делается путём извлечения одного свойства из каждого элемента и добавления префикса-разделителя, чтобы можно было визуализировать относительное положение в дереве.
И $valuePath, и $keyPath могут быть строкой со свойством для извлечения или точечно-разделённым путём свойств, которые следует следовать для получения последнего в пути.
В качестве альтернативы, $valuePath и $keyPath могут быть вызываемыми функциями. Они получат текущий элемент в качестве первого параметра, текущий ключ итерации как второй параметр и экземпляр итератора как третий аргумент.
Пример
$printer = (new Collection($treeStructure))->listNested()->printer('name'); Использование замыкания:
$printer = (new Collection($treeStructure))
->listNested()
->printer(function ($item, $key, $iterator) {
return $item->name;
}); Параметры
- строка|вызываемая функция
$valuePath Свойство для извлечения или вызываемая функция для возвращения значения для отображения
- строка|вызываемая функция|null
$keyPathнеобязательно null Свойство для использования в качестве ключа итерации или вызываемая функция, возвращающая значение ключа.
- строка
$spacerнеобязательно '__' Строка, используемая для добавления префикса к значениям в зависимости от их глубины в дереве
Возвращает
Cake\Collection\Iterator\TreePrinterМетоды, используемые из Cake\Collection\CollectionTrait
_unwrap()source public
_unwrap( )
append()source public
append( $items )
appendItem()source public
appendItem( $item , $key = null )
avg()source public
avg( $matcher = null )
cartesianProduct()source public
cartesianProduct( callable $operation = null , callable $filter = null )
Параметры
- вызываемая функция
$operationнеобязательно null - Операция
- вызываемая функция
$filterнеобязательно null - Фильтр
Возвращает
Cake\Collection\CollectionInterfaceИсключения
LogicExceptionchunk()source public
chunk( $chunkSize )
chunkWithKeys()source public
chunkWithKeys( $chunkSize , $preserveKeys = true )
combine()source public
combine( $keyPath , $valuePath , $groupPath = null )
compile()source public
compile( $preserveKeys = true )
contains()source public
contains( $value )
countBy()source public
countBy( $callback )
each()source public
each( callable $c )
every()source public
every( callable $c )
extract()source public
extract( $matcher )
filter()source public
filter( callable $c = null )
Возвращает
Cake\Collection\Iterator\FilterIteratorfirst()source public
first( )
firstMatch()source public
firstMatch( array $conditions )
groupBy()source public
groupBy( $callback )
indexBy()source public
indexBy( $callback )
isEmpty()source public
isEmpty( )
jsonSerialize()source public
jsonSerialize( )
last()source public
last( )
lazy()source public
lazy( )
listNested()source public
listNested( $dir = 'desc' , $nestingKey = 'children' )
Возвращает
Cake\Collection\Iterator\TreeIteratormatch()source public
match( array $conditions )
max()source public
max( $callback , $type = \SORT_NUMERIC )
median()source public
median( $matcher = null )
min()source public
min( $callback , $type = \SORT_NUMERIC )
nest()source public
nest( $idPath , $parentPath , $nestingKey = 'children' )
newCollection()source protected
newCollection( ... $args )
Возвращает новую коллекцию.
Позволяет классам, использующим этот тред, определять собственный тип возвращаемого интерфейса коллекции
Параметры
- ...
$args - $args Аргументы конструктора.
Возвращает
Cake\Collection\CollectionInterfaceoptimizeUnwrap()source protected
optimizeUnwrap( )
Распаковывает этот итератор и возвращает самую простую итерируемую последовательность, которая может быть использована для извлечения данных.
Возвращает
Traversable|массивprepend()source public
prepend( $items )
prependItem()source public
prependItem( $item , $key = null )
reduce()source public
reduce( callable $c , $zero = null )
sample()source public
sample( $size = 10 )
shuffle()source public
shuffle( )
skip()source public
skip( $howMany )
some()source public
some( callable $c )
sortBy()source public
sortBy( $callback , $dir = \SORT_DESC , $type = \SORT_NUMERIC )
stopWhen()source public
stopWhen( $condition )
Возвращает
Cake\Collection\Iterator\StoppableIteratorsumOf()source public
sumOf( $matcher = null )
take()source public
take( $size = 1 , $from = 0 )
takeLast()source public
takeLast( $howMany )
through()source public
through( callable $handler )
toArray()source public
toArray( $preserveKeys = true )
toList()source public
toList( )
transpose()source public
transpose( )
Возвращает
Cake\Collection\CollectionInterfaceИсключение
LogicExceptionunfold()source public
unfold( callable $transformer = null )
unwrap()source public
unwrap( )
zip()source public
zip( $items )
zipWith()source public
zipWith( $items , $callable )
Подробное описание свойств
© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/3.8/class-Cake.Collection.Iterator.TreeIterator.html