ParentIterator is just a RecursiveFilterIterator whos accept() method calls the RecursiveFilterIterator->hasChildren() method to filter itself.Basically, it filters out leaf nodes. For exampleThis 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);?>