/** * Wraps a generated iterator in a filter iterator that removes directories * * @param \Iterator $iterator Iterator to wrap * * @return \Iterator * @throws UnexpectedValueException */ protected function filterIterator(\Iterator $iterator) { $f = new FilterIterator($iterator, function ($i) { if (!$i instanceof \SplFileInfo) { throw new UnexpectedValueException('All iterators for UploadSync must return SplFileInfo objects'); } return $i->isFile(); }); $f->rewind(); return $f; }