ParentIterator is just a RecursiveFilterIterator whos accept() method calls the RecursiveFilterIterator->hasChildren() method to filter itself.
Basically, it filters out leaf nodes. For example
This would yield all files and directories
<?php
$rdi = new RecursiveDirectoryIterator(__DIR__);
$iter = new RecursiveIteratorIterator($rdi, RecursiveIteratorIterator::CHILD_FIRST);
?>
wrapping that in a ParentIterator would filter it down to just directories
<?php
$rdi = new RecursiveDirectoryIterator(__DIR__);
$iter = new RecursiveIteratorIterator($rdi, RecursiveIteratorIterator::CHILD_FIRST);
$dirsOnly = new ParentIterator($iter);
?>
La clase ParentIterator
(PHP 5 >= 5.1.0)
Introducción
Esta clase extiende FilterIterator que permite una iteración recursiva usando RecursiveIteratorIterator que solamente muestra los elementos que tienen hijos.
Sinopsis de la Clase
ParentIterator
extends
RecursiveFilterIterator
implements
RecursiveIterator
,
OuterIterator
,
Traversable
,
Iterator
{
/* Métodos */
}Tabla de contenidos
- ParentIterator::accept — Determina aceptabilidad
- ParentIterator::__construct — Construye un ParentIterator
- ParentIterator::getChildren — Devuelve los iteradores hijo contenidos en un ParentIterator
- ParentIterator::hasChildren — Comprueba si los iteradores internos del elemento actual tiene un hijos
- ParentIterator::next — Mueve el iterador a la siguiente posición
- ParentIterator::rewind — Rebobina el iterador
Anonymous ¶
1 year ago
