Nette\Utils\Finder::buildIterator PHP Метод

buildIterator() приватный Метод

Returns per-path iterator.
private buildIterator ( $path ) : Iterator
Результат Iterator
    private function buildIterator($path)
    {
        $iterator = new RecursiveDirectoryIterator($path, RecursiveDirectoryIterator::FOLLOW_SYMLINKS);
        if ($this->exclude) {
            $iterator = new \RecursiveCallbackFilterIterator($iterator, function ($foo, $bar, RecursiveDirectoryIterator $file) {
                if (!$file->isDot() && !$file->isFile()) {
                    foreach ($this->exclude as $filter) {
                        if (!call_user_func($filter, $file)) {
                            return FALSE;
                        }
                    }
                }
                return TRUE;
            });
        }
        if ($this->maxDepth !== 0) {
            $iterator = new RecursiveIteratorIterator($iterator, $this->order);
            $iterator->setMaxDepth($this->maxDepth);
        }
        $iterator = new \CallbackFilterIterator($iterator, function ($foo, $bar, \Iterator $file) {
            while ($file instanceof \OuterIterator) {
                $file = $file->getInnerIterator();
            }
            foreach ($this->groups as $filters) {
                foreach ($filters as $filter) {
                    if (!call_user_func($filter, $file)) {
                        continue 2;
                    }
                }
                return TRUE;
            }
            return FALSE;
        });
        return $iterator;
    }