|
4 | 4 |
|
5 | 5 | namespace Doctrine\Persistence\Mapping\Driver;
|
6 | 6 |
|
7 |
| -use AppendIterator; |
8 | 7 | use Doctrine\Persistence\Mapping\MappingException;
|
9 |
| -use FilesystemIterator; |
10 |
| -use Iterator; |
11 |
| -use RecursiveDirectoryIterator; |
12 |
| -use RecursiveIteratorIterator; |
13 | 8 | use ReflectionClass;
|
14 |
| -use RegexIterator; |
15 |
| -use SplFileInfo; |
16 | 9 |
|
17 | 10 | use function array_merge;
|
18 | 11 | use function array_unique;
|
19 | 12 | use function assert;
|
20 | 13 | use function get_declared_classes;
|
21 |
| -use function is_dir; |
22 | 14 | use function preg_match;
|
23 |
| -use function preg_quote; |
24 | 15 | use function realpath;
|
25 |
| -use function sprintf; |
26 | 16 | use function str_contains;
|
27 | 17 | use function str_replace;
|
28 | 18 |
|
@@ -134,33 +124,14 @@ public function getAllClassNames(): array
|
134 | 124 | throw MappingException::pathRequiredForDriver(static::class);
|
135 | 125 | }
|
136 | 126 |
|
137 |
| - /** @var AppendIterator<array-key,SplFileInfo,Iterator<array-key,SplFileInfo>> $filesIterator */ |
138 |
| - $filesIterator = new AppendIterator(); |
| 127 | + $dirFilesIterator = new DirectoryFilesIterator($this->paths, $this->fileExtension); |
| 128 | + /** @var iterable<string> $filePathsIterator */ |
| 129 | + $filePathsIterator = new FilePathNameIterator($dirFilesIterator); |
139 | 130 |
|
140 |
| - foreach ($this->paths as $path) { |
141 |
| - if (! is_dir($path)) { |
142 |
| - throw MappingException::fileMappingDriversRequireConfiguredDirectoryPath($path); |
143 |
| - } |
144 |
| - |
145 |
| - /** @var Iterator<array-key,SplFileInfo> $iterator */ |
146 |
| - $iterator = new RegexIterator( |
147 |
| - new RecursiveIteratorIterator( |
148 |
| - new RecursiveDirectoryIterator($path, FilesystemIterator::SKIP_DOTS), |
149 |
| - RecursiveIteratorIterator::LEAVES_ONLY, |
150 |
| - ), |
151 |
| - sprintf('/%s$/', preg_quote($this->fileExtension, '/')), |
152 |
| - RegexIterator::MATCH, |
153 |
| - ); |
154 |
| - |
155 |
| - $filesIterator->append($iterator); |
156 |
| - } |
157 |
| - |
158 |
| - /** @var iterable<string> $sourceFilePathNames */ |
159 |
| - $sourceFilePathNames = new FilePathNameIterator($filesIterator); |
160 | 131 | /** @var array<string,true> $includedFiles */
|
161 | 132 | $includedFiles = [];
|
162 | 133 |
|
163 |
| - foreach ($sourceFilePathNames as $sourceFile) { |
| 134 | + foreach ($filePathsIterator as $sourceFile) { |
164 | 135 | if (preg_match('(^phar:)i', $sourceFile) === 0) {
|
165 | 136 | $sourceFile = realpath($sourceFile);
|
166 | 137 | assert($sourceFile !== false);
|
|
0 commit comments