From 29daac8458cc2b7b94ae93017ccabb1b0a30f935 Mon Sep 17 00:00:00 2001 From: Jan Nedbal Date: Tue, 15 Apr 2025 17:18:28 +0200 Subject: [PATCH] ResultCacheManager: support dots in parametersNotInvalidatingCache --- conf/config.neon | 22 +++++++++---------- conf/parametersSchema.neon | 5 ++++- .../ResultCache/ResultCacheManager.php | 5 +++-- 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/conf/config.neon b/conf/config.neon index a9a72fdf01..6b64f0d1b1 100644 --- a/conf/config.neon +++ b/conf/config.neon @@ -191,17 +191,17 @@ parameters: tmpDir: %sysGetTempDir%/phpstan-fixer __validate: true parametersNotInvalidatingCache: - - parameters.editorUrl - - parameters.editorUrlTitle - - parameters.errorFormat - - parameters.ignoreErrors - - parameters.reportUnmatchedIgnoredErrors - - parameters.tipsOfTheDay - - parameters.parallel - - parameters.internalErrorsCountLimit - - parameters.cache - - parameters.memoryLimitFile - - parameters.pro + - [parameters, editorUrl] + - [parameters, editorUrlTitle] + - [parameters, errorFormat] + - [parameters, ignoreErrors] + - [parameters, reportUnmatchedIgnoredErrors] + - [parameters, tipsOfTheDay] + - [parameters, parallel] + - [parameters, internalErrorsCountLimit] + - [parameters, cache] + - [parameters, memoryLimitFile] + - [parameters, pro] - parametersSchema extensions: diff --git a/conf/parametersSchema.neon b/conf/parametersSchema.neon index 69fc9380b9..abedcd1e62 100644 --- a/conf/parametersSchema.neon +++ b/conf/parametersSchema.neon @@ -167,7 +167,10 @@ parametersSchema: ]) env: arrayOf(string(), anyOf(int(), string())) sysGetTempDir: string() - parametersNotInvalidatingCache: listOf(string()) + parametersNotInvalidatingCache: listOf(schema(anyOf( + string(), + listOf(string()), + ))) # playground mode sourceLocatorPlaygroundMode: bool() diff --git a/src/Analyser/ResultCache/ResultCacheManager.php b/src/Analyser/ResultCache/ResultCacheManager.php index b40e3bb83e..5335008c34 100644 --- a/src/Analyser/ResultCache/ResultCacheManager.php +++ b/src/Analyser/ResultCache/ResultCacheManager.php @@ -67,7 +67,7 @@ final class ResultCacheManager * @param string[] $bootstrapFiles * @param string[] $scanFiles * @param string[] $scanDirectories - * @param list $parametersNotInvalidatingCache + * @param list> $parametersNotInvalidatingCache */ public function __construct( private Container $container, @@ -886,7 +886,8 @@ private function getMeta(array $allAnalysedFiles, ?array $projectConfigArray): a if ($projectConfigArray !== null) { foreach ($this->parametersNotInvalidatingCache as $parameterPath) { - ArrayHelper::unsetKeyAtPath($projectConfigArray, explode('.', $parameterPath)); + $pathAsArray = is_array($parameterPath) ? $parameterPath : explode('.', $parameterPath); + ArrayHelper::unsetKeyAtPath($projectConfigArray, $pathAsArray); } ksort($projectConfigArray);