Skip to content

Commit

Permalink
Don't neon-decode phpstan configs over and over again (#3796)
Browse files Browse the repository at this point in the history
  • Loading branch information
staabm committed May 11, 2023
1 parent d8da061 commit 8d96ad5
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion src/Autoloading/BootstrapFilesIncluder.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,11 @@ public function __construct(
) {
}

/**
* @var array<string, mixed>
*/
private $configCache = [];

public function includePHPStanExtensionsBoostrapFiles(?Container $container = null): void
{
$extensionConfigFiles = $this->phpStanExtensionsConfigResolver->resolve();
Expand Down Expand Up @@ -69,8 +74,13 @@ private function resolveAbsoluteBootstrapFilePaths(array $extensionConfigFiles):
$absoluteBootstrapFilePaths = [];

foreach ($extensionConfigFiles as $extensionConfigFile) {
$extensionConfigContents = Neon::decodeFile($extensionConfigFile);
if (!array_key_exists($extensionConfigFile, $this->configCache)) {
$extensionConfigContents = Neon::decodeFile($extensionConfigFile);

$this->configCache[$extensionConfigFile] = $extensionConfigContents;
} else {
$extensionConfigContents = $this->configCache[$extensionConfigFile];
}
$configDirectory = dirname($extensionConfigFile);

$bootstrapFiles = $extensionConfigContents['parameters']['bootstrapFiles'] ?? [];
Expand Down

0 comments on commit 8d96ad5

Please sign in to comment.