2727use function array_filter ;
2828use function array_key_exists ;
2929use function array_keys ;
30+ use function array_merge ;
3031use function array_unique ;
3132use function array_values ;
3233use function count ;
3334use function explode ;
3435use function get_loaded_extensions ;
3536use function implode ;
3637use function is_array ;
38+ use function is_dir ;
3739use function is_file ;
3840use function ksort ;
3941use function microtime ;
@@ -63,6 +65,7 @@ final class ResultCacheManager
6365
6466 /**
6567 * @param string[] $analysedPaths
68+ * @param string[] $analysedPathsFromConfig
6669 * @param string[] $composerAutoloaderProjectPaths
6770 * @param string[] $bootstrapFiles
6871 * @param string[] $scanFiles
@@ -78,6 +81,7 @@ public function __construct(
7881 private FileHelper $ fileHelper ,
7982 private string $ cacheFilePath ,
8083 private array $ analysedPaths ,
84+ private array $ analysedPathsFromConfig ,
8185 private array $ composerAutoloaderProjectPaths ,
8286 private string $ usedLevel ,
8387 private ?string $ cliAutoloadFile ,
@@ -940,11 +944,23 @@ private function getFileHash(string $path): string
940944 private function getScannedFiles (array $ allAnalysedFiles ): array
941945 {
942946 $ scannedFiles = $ this ->scanFiles ;
943- foreach ($ this ->scanFileFinder ->findFiles ($ this ->scanDirectories )->getFiles () as $ file ) {
944- $ scannedFiles [] = $ file ;
947+ $ analysedDirectories = [];
948+ foreach (array_merge ($ this ->analysedPaths , $ this ->analysedPathsFromConfig ) as $ analysedPath ) {
949+ if (is_file ($ analysedPath )) {
950+ continue ;
951+ }
952+
953+ if (!is_dir ($ analysedPath )) {
954+ continue ;
955+ }
956+
957+ $ analysedDirectories [] = $ analysedPath ;
945958 }
946959
947- $ scannedFiles = array_unique ($ scannedFiles );
960+ $ directories = array_unique (array_merge ($ analysedDirectories , $ this ->scanDirectories ));
961+ foreach ($ this ->scanFileFinder ->findFiles ($ directories )->getFiles () as $ file ) {
962+ $ scannedFiles [] = $ file ;
963+ }
948964
949965 $ hashes = [];
950966 foreach (array_diff ($ scannedFiles , $ allAnalysedFiles ) as $ file ) {
0 commit comments