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 classe ParentIterator
(PHP 5 >= 5.1.0)
Introduction
Ce sous-type de FilterIterator permet la récursivité au moyen de RecursiveIteratorIterator et il ne montre alors que les éléments ayant des enfants.
Synopsis de la classe
ParentIterator
extends
RecursiveFilterIterator
implements
RecursiveIterator
,
OuterIterator
,
Traversable
,
Iterator
{
/* Méthodes */
}Sommaire
- ParentIterator::accept — Détermine si l'élément courant a des fils
- ParentIterator::__construct — Construit un nouvel objet ParentIterator
- ParentIterator::getChildren — Retourne le fils de l'itérateur interne contenu dans ParentIterator
- ParentIterator::hasChildren — Vérifie si l'élément courant de l'itérateur interne a un fils
- ParentIterator::next — Déplace l'itérateur à la position suivante
- ParentIterator::rewind — Replace l'itérateur au début
Anonymous
19-Dec-2011 12:55
