20
20
* ->from('.')
21
21
* ->exclude('temp');
22
22
*
23
+ * @method static static find(string|array $masks = ['*'])
24
+ * @method static static findFiles(string|array $masks = ['*'])
25
+ * @method static static findFiles(string|array $masks = ['*'])
23
26
* @implements \IteratorAggregate<string, FileInfo>
24
27
*/
25
28
class Finder implements \IteratorAggregate
@@ -48,10 +51,19 @@ class Finder implements \IteratorAggregate
48
51
private bool $ ignoreUnreadableDirs = true ;
49
52
50
53
54
+ public static function __callStatic (string $ name , array $ args ): mixed
55
+ {
56
+ if (in_array ($ name , ['find ' , 'findFiles ' , 'findDirectories ' ], true )) {
57
+ $ name = '_ ' . $ name ;
58
+ return self ::$ name (...$ args );
59
+ }
60
+ }
61
+
62
+
51
63
/**
52
64
* Begins search for files and directories matching mask.
53
65
*/
54
- public static function find (string |array $ masks = ['* ' ]): static
66
+ private static function _find (string |array $ masks = ['* ' ]): static
55
67
{
56
68
$ masks = is_array ($ masks ) ? $ masks : func_get_args (); // compatibility with variadic
57
69
return (new static )->addMask ($ masks , 'dir ' )->addMask ($ masks , 'file ' );
@@ -61,7 +73,7 @@ public static function find(string|array $masks = ['*']): static
61
73
/**
62
74
* Begins search for files matching mask.
63
75
*/
64
- public static function findFiles (string |array $ masks = ['* ' ]): static
76
+ private static function _findFiles (string |array $ masks = ['* ' ]): static
65
77
{
66
78
$ masks = is_array ($ masks ) ? $ masks : func_get_args (); // compatibility with variadic
67
79
return (new static )->addMask ($ masks , 'file ' );
@@ -71,7 +83,7 @@ public static function findFiles(string|array $masks = ['*']): static
71
83
/**
72
84
* Begins search for directories matching mask.
73
85
*/
74
- public static function findDirectories (string |array $ masks = ['* ' ]): static
86
+ private static function _findDirectories (string |array $ masks = ['* ' ]): static
75
87
{
76
88
$ masks = is_array ($ masks ) ? $ masks : func_get_args (); // compatibility with variadic
77
89
return (new static )->addMask ($ masks , 'dir ' );
0 commit comments