diff --git a/src/FileSystem/FilesFinder.php b/src/FileSystem/FilesFinder.php index fb4fd77069e..0ef6d59845a 100644 --- a/src/FileSystem/FilesFinder.php +++ b/src/FileSystem/FilesFinder.php @@ -2,7 +2,6 @@ namespace Rector\FileSystem; -use Nette\Utils\Strings; use Rector\Exception\FileSystem\DirectoryNotFoundException; use Symfony\Component\Finder\Finder; use Symfony\Component\Finder\SplFileInfo; @@ -43,11 +42,11 @@ final class FilesFinder { $this->ensureDirectoriesExist($directories); - $suffixes = $this->normalizeSuffixesToPattern($suffixes); + $suffixesPattern = $this->normalizeSuffixesToPattern($suffixes); $finder = Finder::create() ->files() - ->name($suffixes) + ->name($suffixesPattern) ->in($directories) ->exclude(['examples', 'Examples', 'stubs', 'Stubs', 'fixtures', 'Fixtures', 'polyfill', 'Polyfill']) ->notName('*polyfill*') @@ -75,11 +74,8 @@ final class FilesFinder */ private function normalizeSuffixesToPattern(array $suffixes): string { - $suffixesPattern = ''; - foreach ($suffixes as $suffix) { - $suffixesPattern = Strings::startsWith($suffix, '*.') ? $suffix : '*.' . $suffix; - } + $suffixesPattern = implode('|', $suffixes); - return $suffixesPattern; + return '#\.(' . $suffixesPattern . ')$#'; } } diff --git a/tests/FileSystem/FilesFinder/FilesFinderSource/other_config.yaml b/tests/FileSystem/FilesFinder/FilesFinderSource/other_config.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/FileSystem/FilesFinder/FilesFinderTest.php b/tests/FileSystem/FilesFinder/FilesFinderTest.php index 66e2b70faac..98cd06d9913 100644 --- a/tests/FileSystem/FilesFinder/FilesFinderTest.php +++ b/tests/FileSystem/FilesFinder/FilesFinderTest.php @@ -33,9 +33,10 @@ final class FilesFinderTest extends AbstractContainerAwareTestCase public function provideData(): Iterator { - yield [['*.php'], 1, 'SomeFile.php']; - yield [['*.yml'], 1, 'some_config.yml']; yield [['php'], 1, 'SomeFile.php']; yield [['yml'], 1, 'some_config.yml']; + yield [['yaml'], 1, 'other_config.yaml']; + yield [['php'], 1, 'SomeFile.php']; + yield [['yaml', 'yml'], 2, 'some_config.yml']; } }