public function getChildren() { $children = new self($this->iterator->getChildren(), []); $children->excludedDirs = $this->excludedDirs; $children->excludedPattern = $this->excludedPattern; return $children; }
function iterate(RecursiveIterator $iterator) { foreach ($iterator as $value) { if ($iterator->hasChildren()) { iterate($iterator->getChildren()); continue; } echo $value, PHP_EOL; } }
/** * constructor * * @param RecursiveIterator $iterator * @param string $filter */ public function __construct(\RecursiveIterator $iterator, $filter, $topDirectory = null) { $this->_filter = str_replace(array('\\', '/'), DIRECTORY_SEPARATOR, $filter); if ($topDirectory == null) { $iterator->rewind(); $this->_topDirectory = (string) $iterator->current()->getPath(); } else { $this->_topDirectory = $topDirectory; } parent::__construct($iterator); }
protected function createViewModelForMenuItemIterator(\RecursiveIterator $rit) { $itemsViews = array(); $rit->rewind(); while ($rit->valid()) { $item = $rit->current(); $view = $this->createViewModelForMenuItem($item); if ($rit->hasChildren()) { $childrenView = $this->createViewModelForMenuItemIterator($rit->getChildren()); $view->set('children', $childrenView); } $itemsViews[] = $view; $rit->next(); } return $itemsViews; }
/** * Walks recursivly throught an array and concatinates the found info to a string. * * @param \RecursiveIterator $iterator * * @return string */ protected static function traverseStructure($iterator) { $children = ''; while ($iterator->valid()) { if ($iterator->hasChildren()) { $current = 'array (' . self::traverseStructure($iterator->getChildren()) . '), '; } else { $current = "'" . $iterator->current() . "', "; } $key = $iterator->key(); if (is_numeric($key)) { $children .= $key . " => " . $current; } else { $children .= "'" . $key . "' => " . $current; } $iterator->next(); } return $children; }