2929 */
3030final class WorkingProjectPathResolver
3131{
32+ /**
33+ * @var list<string> repository-local directories ignored by tooling
34+ */
35+ public const array TOOLING_EXCLUDED_DIRECTORIES = [
36+ '.dev-tools ' ,
37+ 'backup ' ,
38+ 'cache ' ,
39+ 'public ' ,
40+ 'resources ' ,
41+ 'tmp ' ,
42+ 'vendor ' ,
43+ '*/vendor ' ,
44+ '*/vendor/* ' ,
45+ '**/vendor ' ,
46+ '**/vendor/* ' ,
47+ ];
48+
3249 /**
3350 * Returns the current working project directory or a path under it.
3451 *
@@ -52,19 +69,27 @@ public static function getProjectPath(string $path = ''): string
5269 */
5370 public static function getToolingExcludedDirectories (string $ baseDir = '' ): array
5471 {
55- return [
56- ManagedWorkspace::getOutputDirectory (baseDir: $ baseDir ),
57- Path::join ($ baseDir , 'backup ' ),
58- Path::join ($ baseDir , 'cache ' ),
59- Path::join ($ baseDir , 'public ' ),
60- Path::join ($ baseDir , 'resources ' ),
61- Path::join ($ baseDir , 'tmp ' ),
62- Path::join ($ baseDir , 'vendor ' ),
63- Path::join ($ baseDir , '*/vendor ' ),
64- Path::join ($ baseDir , '*/vendor/* ' ),
65- Path::join ($ baseDir , '**/vendor ' ),
66- Path::join ($ baseDir , '**/vendor/* ' ),
72+ $ excludeFromBaseDir = [
73+ ' .dev-tools ' => ManagedWorkspace::getOutputDirectory (baseDir: $ baseDir ),
74+ ' backup ' => Path::join ($ baseDir , 'backup ' ),
75+ ' cache ' => Path::join ($ baseDir , 'cache ' ),
76+ ' public ' => Path::join ($ baseDir , 'public ' ),
77+ ' resources ' => Path::join ($ baseDir , 'resources ' ),
78+ ' tmp ' => Path::join ($ baseDir , 'tmp ' ),
79+ ' vendor ' => Path::join ($ baseDir , 'vendor ' ),
80+ ' */vendor ' => Path::join ($ baseDir , '*/vendor ' ),
81+ ' */vendor/* ' => Path::join ($ baseDir , '*/vendor/* ' ),
82+ ' **/vendor ' => Path::join ($ baseDir , '**/vendor ' ),
83+ ' **/vendor/* ' => Path::join ($ baseDir , '**/vendor/* ' ),
6784 ];
85+
86+ $ directories = [];
87+
88+ foreach (self ::TOOLING_EXCLUDED_DIRECTORIES as $ excludedDirectory ) {
89+ $ directories [] = $ excludeFromBaseDir [$ excludedDirectory ];
90+ }
91+
92+ return $ directories ;
6893 }
6994
7095 /**
@@ -81,7 +106,7 @@ public static function getToolingSourcePaths(string $baseDir = ''): array
81106 ->files ()
82107 ->name ('*.php ' )
83108 ->in ($ workingDirectory )
84- ->exclude ([ ' .dev-tools ' , ' backup ' , ' cache ' , ' public ' , ' resources ' , ' tmp ' , ' vendor ' ] )
109+ ->exclude (self :: TOOLING_EXCLUDED_DIRECTORIES )
85110 ->sortByName ();
86111 $ paths = [];
87112
0 commit comments