2525use function array_filter ;
2626use function array_key_exists ;
2727use function array_keys ;
28+ use function array_merge ;
2829use function array_unique ;
2930use function array_values ;
3031use function count ;
3132use function get_loaded_extensions ;
3233use function implode ;
3334use function is_array ;
35+ use function is_dir ;
3436use function is_file ;
3537use function ksort ;
3638use function microtime ;
@@ -60,6 +62,7 @@ final class ResultCacheManager
6062
6163 /**
6264 * @param string[] $analysedPaths
65+ * @param string[] $analysedPathsFromConfig
6366 * @param string[] $composerAutoloaderProjectPaths
6467 * @param string[] $bootstrapFiles
6568 * @param string[] $scanFiles
@@ -73,6 +76,7 @@ public function __construct(
7376 private FileHelper $ fileHelper ,
7477 private string $ cacheFilePath ,
7578 private array $ analysedPaths ,
79+ private array $ analysedPathsFromConfig ,
7680 private array $ composerAutoloaderProjectPaths ,
7781 private string $ usedLevel ,
7882 private ?string $ cliAutoloadFile ,
@@ -946,11 +950,23 @@ private function getFileHash(string $path): string
946950 private function getScannedFiles (array $ allAnalysedFiles ): array
947951 {
948952 $ scannedFiles = $ this ->scanFiles ;
949- foreach ($ this ->scanFileFinder ->findFiles ($ this ->scanDirectories )->getFiles () as $ file ) {
950- $ scannedFiles [] = $ file ;
953+ $ analysedDirectories = [];
954+ foreach (array_merge ($ this ->analysedPaths , $ this ->analysedPathsFromConfig ) as $ analysedPath ) {
955+ if (is_file ($ analysedPath )) {
956+ continue ;
957+ }
958+
959+ if (!is_dir ($ analysedPath )) {
960+ continue ;
961+ }
962+
963+ $ analysedDirectories [] = $ analysedPath ;
951964 }
952965
953- $ scannedFiles = array_unique ($ scannedFiles );
966+ $ directories = array_unique (array_merge ($ analysedDirectories , $ this ->scanDirectories ));
967+ foreach ($ this ->scanFileFinder ->findFiles ($ directories )->getFiles () as $ file ) {
968+ $ scannedFiles [] = $ file ;
969+ }
954970
955971 $ hashes = [];
956972 foreach (array_diff ($ scannedFiles , $ allAnalysedFiles ) as $ file ) {
0 commit comments