Skip to content

Commit 8f2e45c

Browse files
janedbalondrejmirtes
authored andcommitted
ResultCacheManager: introduce flag checkDependenciesOfProjectExtensionFiles
1 parent 91fde71 commit 8f2e45c

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

conf/config.neon

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ parameters:
114114
memoryLimitFile: %tmpDir%/.memory_limit
115115
tempResultCachePath: %tmpDir%/resultCaches
116116
resultCachePath: %tmpDir%/resultCache.php
117+
resultCacheChecksProjectExtensionFilesDependencies: false
117118
staticReflectionClassNamePatterns:
118119
- '#^PhpParser\\#'
119120
- '#^PHPStan\\#'
@@ -305,6 +306,7 @@ parametersSchema:
305306
memoryLimitFile: string()
306307
tempResultCachePath: string()
307308
resultCachePath: string()
309+
resultCacheChecksProjectExtensionFilesDependencies: bool()
308310
staticReflectionClassNamePatterns: listOf(string())
309311
dynamicConstantNames: listOf(string())
310312
customRulesetUsed: bool()
@@ -477,6 +479,7 @@ services:
477479
bootstrapFiles: %bootstrapFiles%
478480
scanFiles: %scanFiles%
479481
scanDirectories: %scanDirectories%
482+
checkDependenciesOfProjectExtensionFiles: %resultCacheChecksProjectExtensionFilesDependencies%
480483

481484
-
482485
class: PHPStan\Analyser\ResultCache\ResultCacheClearer

src/Analyser/ResultCache/ResultCacheManager.php

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ class ResultCacheManager
6262
/** @var array<string, true> */
6363
private array $alreadyProcessed = [];
6464

65+
private bool $checkDependenciesOfProjectExtensionFiles;
66+
6567
/**
6668
* @param ExportedNodeFetcher $exportedNodeFetcher
6769
* @param FileFinder $scanFileFinder
@@ -92,7 +94,8 @@ public function __construct(
9294
array $bootstrapFiles,
9395
array $scanFiles,
9496
array $scanDirectories,
95-
array $fileReplacements
97+
array $fileReplacements,
98+
bool $checkDependenciesOfProjectExtensionFiles
9699
)
97100
{
98101
$this->exportedNodeFetcher = $exportedNodeFetcher;
@@ -109,6 +112,7 @@ public function __construct(
109112
$this->scanFiles = $scanFiles;
110113
$this->scanDirectories = $scanDirectories;
111114
$this->fileReplacements = $fileReplacements;
115+
$this->checkDependenciesOfProjectExtensionFiles = $checkDependenciesOfProjectExtensionFiles;
112116
}
113117

114118
/**
@@ -688,9 +692,12 @@ private function getAllDependencies(string $fileName, array $dependencies): arra
688692
$this->alreadyProcessed[$fileName] = true;
689693

690694
$files = [$fileName];
691-
foreach ($dependencies[$fileName] as $fileDep) {
692-
foreach ($this->getAllDependencies($fileDep, $dependencies) as $fileDep2) {
693-
$files[] = $fileDep2;
695+
696+
if ($this->checkDependenciesOfProjectExtensionFiles) {
697+
foreach ($dependencies[$fileName] as $fileDep) {
698+
foreach ($this->getAllDependencies($fileDep, $dependencies) as $fileDep2) {
699+
$files[] = $fileDep2;
700+
}
694701
}
695702
}
696703

0 commit comments

Comments
 (0)