2020 * ->from('.')
2121 * ->exclude('temp');
2222 *
23+ * @method static static find(string|array $masks = ['*'])
24+ * @method static static findFiles(string|array $masks = ['*'])
25+ * @method static static findFiles(string|array $masks = ['*'])
2326 * @implements \IteratorAggregate<string, FileInfo>
2427 */
2528class Finder implements \IteratorAggregate
@@ -48,10 +51,19 @@ class Finder implements \IteratorAggregate
4851 private bool $ ignoreUnreadableDirs = true ;
4952
5053
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+
5163 /**
5264 * Begins search for files and directories matching mask.
5365 */
54- public static function find (string |array $ masks = ['* ' ]): static
66+ private static function _find (string |array $ masks = ['* ' ]): static
5567 {
5668 $ masks = is_array ($ masks ) ? $ masks : func_get_args (); // compatibility with variadic
5769 return (new static )->addMask ($ masks , 'dir ' )->addMask ($ masks , 'file ' );
@@ -61,7 +73,7 @@ public static function find(string|array $masks = ['*']): static
6173 /**
6274 * Begins search for files matching mask.
6375 */
64- public static function findFiles (string |array $ masks = ['* ' ]): static
76+ private static function _findFiles (string |array $ masks = ['* ' ]): static
6577 {
6678 $ masks = is_array ($ masks ) ? $ masks : func_get_args (); // compatibility with variadic
6779 return (new static )->addMask ($ masks , 'file ' );
@@ -71,7 +83,7 @@ public static function findFiles(string|array $masks = ['*']): static
7183 /**
7284 * Begins search for directories matching mask.
7385 */
74- public static function findDirectories (string |array $ masks = ['* ' ]): static
86+ private static function _findDirectories (string |array $ masks = ['* ' ]): static
7587 {
7688 $ masks = is_array ($ masks ) ? $ masks : func_get_args (); // compatibility with variadic
7789 return (new static )->addMask ($ masks , 'dir ' );
0 commit comments