6
6
use Spatie \StructureDiscoverer \Discover ;
7
7
use Spatie \StructureDiscoverer \DiscoverWorkers \DiscoverWorker ;
8
8
use Spatie \StructureDiscoverer \DiscoverWorkers \SynchronousDiscoverWorker ;
9
+ use Spatie \StructureDiscoverer \Enums \Sort ;
9
10
use SplFileInfo ;
10
11
use Symfony \Component \Finder \Finder ;
11
12
@@ -22,7 +23,9 @@ public function execute(Discover $profile): array
22
23
{
23
24
$ structures = $ this ->discover (
24
25
$ profile ->config ->directories ,
25
- $ profile ->config ->ignoredFiles
26
+ $ profile ->config ->ignoredFiles ,
27
+ $ profile ->config ->sort ,
28
+ $ profile ->config ->reverseSorting ,
26
29
);
27
30
28
31
if ($ profile ->config ->withChains ) {
@@ -47,13 +50,25 @@ public function execute(Discover $profile): array
47
50
/** @return array<DiscoveredStructure> */
48
51
public function discover (
49
52
array $ directories ,
50
- array $ ignoredFiles = [],
53
+ array $ ignoredFiles ,
54
+ ?Sort $ sort ,
55
+ bool $ reverseSorting
51
56
): array {
52
57
if (empty ($ directories )) {
53
58
return [];
54
59
}
55
60
56
- $ files = (new Finder ())->files ()->in ($ directories );
61
+ $ finder = (new Finder ())->files ();
62
+
63
+ if ($ sort ) {
64
+ $ sort ->apply ($ finder );
65
+ }
66
+
67
+ if ($ reverseSorting ) {
68
+ $ finder ->reverseSorting ();
69
+ }
70
+
71
+ $ files = $ finder ->in ($ directories );
57
72
58
73
$ filenames = collect ($ files )
59
74
->reject (fn (SplFileInfo $ file ) => in_array ($ file ->getPathname (), $ ignoredFiles ) || $ file ->getExtension () !== 'php ' )
0 commit comments