Skip to content

Commit

Permalink
fix unable to rewind
Browse files Browse the repository at this point in the history
  • Loading branch information
mvorisek committed Apr 5, 2021
1 parent dba13cc commit fb0c85f
Showing 1 changed file with 17 additions and 9 deletions.
26 changes: 17 additions & 9 deletions src/Finder.php
Expand Up @@ -13,7 +13,6 @@
namespace PhpCsFixer;

use Symfony\Component\Finder\Finder as BaseFinder;
use Symfony\Component\Finder\Iterator\LazyIterator;

/**
* @author Fabien Potencier <fabien@symfony.com>
Expand All @@ -30,16 +29,25 @@ public function __construct()
->name('*.php')
->exclude('vendor')
;
}

public function getIterator()
{
// add config files even if dot files are ignored
if (class_exists(LazyIterator::class)) { // LazyIterator class is available since Symfony 4.4 (which requires PHP 7+)
$this->append(new \IteratorIterator(new LazyIterator(function () {
$iterator = clone $this;
$iterator->ignoreDotFiles(false);
$iterator->name('~^\.php_cs(?:\..+)?$~is');

return $iterator;
})));
$configFilenameRegex = '\.php_cs(?:\..+)?';
$this->name('~^'.$configFilenameRegex.'$~is');

$fx = \Closure::bind(function () { // rebound function can be called without assigment as of PHP 7
return $this->ignore & static::IGNORE_DOT_FILES;
}, $this, parent::class);
$isDotFilesIgnored = $fx();
if ($isDotFilesIgnored) {
$this
->ignoreDotFiles(false)
->notPath('~(?:^|/)(?!'.$configFilenameRegex.'(?:/|$))\..*(?:/|$)~')
;
}

return parent::getIterator();
}
}

0 comments on commit fb0c85f

Please sign in to comment.