/** * This is a workaround for the problem with \FilterIterator leaving inner \FilesystemIterator in wrong state after * rewind in some cases. * * @see FilterIterator::rewind() */ public function rewind() { if (PHP_VERSION_ID > 50607 || PHP_VERSION_ID > 50523 && PHP_VERSION_ID < 50600) { parent::rewind(); return; } $iterator = $this; while ($iterator instanceof \OuterIterator) { $innerIterator = $iterator->getInnerIterator(); if ($innerIterator instanceof \FilesystemIterator) { $innerIterator->next(); $innerIterator->rewind(); } $iterator = $iterator->getInnerIterator(); } parent::rewind(); }
/** * @inheritDoc */ public function __construct(Iterator $iterator, array $ignore) { $this->ignore = $ignore; parent::__construct($iterator); }
/** * FilenameFilter constructor. * @param Iterator $iterator * @param string $search */ public function __construct(Iterator $iterator, $search) { $this->iterator = $iterator; $this->search = str_replace('*', '', $search); parent::__construct($iterator); }