Skip to content

Commit 67913dc

Browse files
committed
Iterator: Rearrange and rename classes for clarity
- Move `FluentIteratorTrait` to main `Iterator` namespace - Rename `RecursiveFilesystemIterator` to `FileIterator`
1 parent 7ed47bd commit 67913dc

File tree

23 files changed

+35
-33
lines changed

23 files changed

+35
-33
lines changed

src/Toolkit/Iterator/RecursiveFilesystemIterator.php renamed to src/Toolkit/Iterator/FileIterator.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
use Salient\Contract\Core\Immutable;
66
use Salient\Contract\Iterator\FluentIteratorInterface;
7-
use Salient\Iterator\Concern\FluentIteratorTrait;
87
use Salient\Utility\Exception\FilesystemErrorException;
98
use Salient\Utility\Exception\InvalidArgumentTypeException;
109
use Salient\Utility\Arr;
@@ -31,7 +30,7 @@
3130
* @implements IteratorAggregate<string,SplFileInfo>
3231
* @implements FluentIteratorInterface<string,SplFileInfo>
3332
*/
34-
class RecursiveFilesystemIterator implements
33+
class FileIterator implements
3534
IteratorAggregate,
3635
FluentIteratorInterface,
3736
Countable,

src/Toolkit/Iterator/Concern/FluentIteratorTrait.php renamed to src/Toolkit/Iterator/FluentIteratorTrait.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php declare(strict_types=1);
22

3-
namespace Salient\Iterator\Concern;
3+
namespace Salient\Iterator;
44

55
use Salient\Contract\Iterator\FluentIteratorInterface;
66

src/Toolkit/Iterator/GraphIterator.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
use ReturnTypeWillChange;
88

99
/**
10+
* Iterates over arrays and objects
11+
*
1012
* @api
1113
*
1214
* @implements Iterator<array-key,mixed>

src/Toolkit/Iterator/IterableIterator.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
namespace Salient\Iterator;
44

55
use Salient\Contract\Iterator\FluentIteratorInterface;
6-
use Salient\Iterator\Concern\FluentIteratorTrait;
76
use ArrayIterator;
87
use IteratorIterator;
98
use Traversable;

src/Toolkit/Iterator/RecursiveCallbackIterator.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
use RecursiveIterator;
88

99
/**
10-
* Iterates over a recursive iterator, using a callback to check which elements
11-
* to descend into
10+
* Iterates over a recursive iterator, using a callback to determine which
11+
* elements to descend into
1212
*
1313
* Similar to {@see RecursiveCallbackFilterIterator}, but the callback is only
1414
* used to filter the return value of {@see RecursiveIterator::hasChildren()}.

src/Toolkit/Iterator/RecursiveGraphIterator.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
use RecursiveIterator;
66

77
/**
8+
* Iterates over nested arrays and objects
9+
*
810
* @api
911
*
1012
* @implements RecursiveIterator<array-key,mixed>

src/Toolkit/Utility/File.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
namespace Salient\Utility;
44

55
use Salient\Core\Process;
6-
use Salient\Iterator\RecursiveFilesystemIterator;
6+
use Salient\Iterator\FileIterator;
77
use Salient\Utility\Exception\FilesystemErrorException;
88
use Salient\Utility\Exception\InvalidRuntimeConfigurationException;
99
use Salient\Utility\Exception\UnreadDataException;
@@ -334,9 +334,9 @@ public static function deleteDir(string $directory): void
334334
/**
335335
* Iterate over filesystem entries
336336
*/
337-
public static function find(): RecursiveFilesystemIterator
337+
public static function find(): FileIterator
338338
{
339-
return new RecursiveFilesystemIterator();
339+
return new FileIterator();
340340
}
341341

342342
/**
@@ -382,7 +382,7 @@ public static function isCreatable(string $path): bool
382382
*/
383383
public static function pruneDir(string $directory, bool $delete = false, bool $setPermissions = false): void
384384
{
385-
$files = (new RecursiveFilesystemIterator())->in($directory);
385+
$files = (new FileIterator())->in($directory);
386386

387387
if ($setPermissions) {
388388
clearstatcache();

tests/unit/Toolkit/Iterator/RecursiveFilesystemIteratorTest.php renamed to tests/unit/Toolkit/Iterator/FileIterator/FileIteratorTest.php

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
<?php declare(strict_types=1);
22

3-
namespace Salient\Tests\Iterator;
3+
namespace Salient\Tests\Iterator\FileIterator;
44

5-
use Salient\Iterator\RecursiveFilesystemIterator;
5+
use Salient\Iterator\FileIterator;
66
use Salient\Tests\TestCase;
77
use LogicException;
88
use SplFileInfo;
99

1010
/**
11-
* @covers \Salient\Iterator\RecursiveFilesystemIterator
11+
* @covers \Salient\Iterator\FileIterator
1212
*/
13-
final class RecursiveFilesystemIteratorTest extends TestCase
13+
final class FileIteratorTest extends TestCase
1414
{
1515
/**
1616
* @dataProvider iteratorProvider
@@ -19,7 +19,7 @@ final class RecursiveFilesystemIteratorTest extends TestCase
1919
*/
2020
public function testIterator(
2121
array $expected,
22-
RecursiveFilesystemIterator $iterator,
22+
FileIterator $iterator,
2323
string $replace,
2424
bool $sort = true
2525
): void {
@@ -35,11 +35,11 @@ public function testIterator(
3535
}
3636

3737
/**
38-
* @return array<array{string[],RecursiveFilesystemIterator,string,3?:bool}>
38+
* @return array<array{string[],FileIterator,string,3?:bool}>
3939
*/
4040
public static function iteratorProvider(): array
4141
{
42-
$dir = self::getFixturesPath(__CLASS__);
42+
$dir = __DIR__ . '/data';
4343
$files = [
4444
'/.hidden',
4545
'/dir1/.hidden',
@@ -61,7 +61,7 @@ public static function iteratorProvider(): array
6161
return [
6262
[
6363
$files,
64-
(new RecursiveFilesystemIterator())
64+
(new FileIterator())
6565
->files()
6666
->in($dir),
6767
$dir,
@@ -88,7 +88,7 @@ public static function iteratorProvider(): array
8888
'/file1',
8989
'/file2.ext',
9090
],
91-
(new RecursiveFilesystemIterator())
91+
(new FileIterator())
9292
->in($dir),
9393
$dir,
9494
],
@@ -99,14 +99,14 @@ public static function iteratorProvider(): array
9999
'/dir2',
100100
'/dir2/dir3',
101101
],
102-
(new RecursiveFilesystemIterator())
102+
(new FileIterator())
103103
->directories()
104104
->in($dir),
105105
$dir,
106106
],
107107
[
108108
$files,
109-
(new RecursiveFilesystemIterator())
109+
(new FileIterator())
110110
->directories()
111111
->files()
112112
->in($dir),
@@ -124,7 +124,7 @@ public static function iteratorProvider(): array
124124
'/dir2/file5',
125125
'/dir2/file6.ext',
126126
],
127-
(new RecursiveFilesystemIterator())
127+
(new FileIterator())
128128
->files()
129129
->in($dir)
130130
->include('/\/dir2\//'),
@@ -138,7 +138,7 @@ public static function iteratorProvider(): array
138138
'/dir2/.hidden',
139139
'/dir2/dir3/.hidden',
140140
],
141-
(new RecursiveFilesystemIterator())
141+
(new FileIterator())
142142
->in($dir)
143143
->include('/\/\.hidden$/'),
144144
$dir,
@@ -148,7 +148,7 @@ public static function iteratorProvider(): array
148148
'/dir2',
149149
'/dir2/dir3',
150150
],
151-
(new RecursiveFilesystemIterator())
151+
(new FileIterator())
152152
->in($dir)
153153
->directories()
154154
->directoriesFirst()
@@ -162,7 +162,7 @@ public static function iteratorProvider(): array
162162
'/dir2/dir3',
163163
'/dir2',
164164
],
165-
(new RecursiveFilesystemIterator())
165+
(new FileIterator())
166166
->in($dir)
167167
->directories()
168168
->directoriesLast()
@@ -176,7 +176,7 @@ public static function iteratorProvider(): array
176176
'/dir1/dir2',
177177
'/dir2',
178178
],
179-
(new RecursiveFilesystemIterator())
179+
(new FileIterator())
180180
->in($dir)
181181
->directories()
182182
->include('/\/dir2$/'),
@@ -188,7 +188,7 @@ public static function iteratorProvider(): array
188188
'/file1',
189189
'/file2.ext',
190190
],
191-
(new RecursiveFilesystemIterator())
191+
(new FileIterator())
192192
->files()
193193
->in($dir)
194194
->doNotRecurse(),
@@ -202,7 +202,7 @@ public static function iteratorProvider(): array
202202
'/file1',
203203
'/file2.ext',
204204
],
205-
(new RecursiveFilesystemIterator())
205+
(new FileIterator())
206206
->in($dir)
207207
->doNotRecurse(),
208208
$dir,
@@ -214,7 +214,7 @@ public static function iteratorProvider(): array
214214
'/file1',
215215
'/file2.ext',
216216
],
217-
(new RecursiveFilesystemIterator())
217+
(new FileIterator())
218218
->in($dir)
219219
->doNotRecurse()
220220
->exclude('/\/\.hidden$/'),
@@ -226,7 +226,7 @@ public static function iteratorProvider(): array
226226
'/dir1',
227227
'/dir2',
228228
],
229-
(new RecursiveFilesystemIterator())
229+
(new FileIterator())
230230
->in($dir)
231231
->doNotRecurse()
232232
->exclude('/^file[0-9]+/')
@@ -249,7 +249,7 @@ public static function iteratorProvider(): array
249249
'/dir2/dir3/file8.ext',
250250
'/dir2/file6.ext',
251251
],
252-
(new RecursiveFilesystemIterator())
252+
(new FileIterator())
253253
->in($dir)
254254
->exclude('/^file[0-9]+/')
255255
->include('/\/[^\/]*\.[^\/]*$/')
@@ -280,7 +280,7 @@ public function testGetFirstWith(
280280
$this->expectException(LogicException::class);
281281
}
282282

283-
$file = (new RecursiveFilesystemIterator())
283+
$file = (new FileIterator())
284284
->in($dir)
285285
->getFirstWith($key, $value, $strict);
286286

@@ -296,7 +296,7 @@ public function testGetFirstWith(
296296
*/
297297
public static function getFirstWithProvider(): array
298298
{
299-
$dir = self::getFixturesPath(__CLASS__);
299+
$dir = __DIR__ . '/data';
300300
return [
301301
[
302302
"{$dir}/dir2/file5",

0 commit comments

Comments
 (0)