Skip to content

Commit d05e954

Browse files
committed
Merge branch 2.1.x into 2.2.x
2 parents 7cc4782 + 47f36d8 commit d05e954

File tree

5 files changed

+19
-5
lines changed

5 files changed

+19
-5
lines changed

conf/config.stubValidator.neon

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,17 @@ parameters:
77
reportMaybes: true
88
reportStatic: true
99

10+
parametersSchema:
11+
allStubFiles: listOf(string())
12+
1013
extensions:
1114
stubValidatorRules: PHPStan\DependencyInjection\StubValidatorRuleServicesExtension
1215

1316
services:
1417
-
1518
class: PHPStan\PhpDoc\StubSourceLocatorFactory
1619
arguments:
20+
allStubFiles: %allStubFiles%
1721
php8Parser: @php8PhpParser
1822

1923
# overrides service from parsers.neon

src/DependencyInjection/ContainerFactory.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ public function setJournalContainer(): void
9797
* @param string[] $analysedPaths
9898
* @param string[] $composerAutoloaderProjectPaths
9999
* @param string[] $analysedPathsFromConfig
100+
* @param array<mixed> $additionalParameters
100101
*/
101102
public function create(
102103
string $tempDirectory,
@@ -109,6 +110,7 @@ public function create(
109110
?string $cliAutoloadFile = null,
110111
?string $singleReflectionFile = null,
111112
?string $singleReflectionInsteadOfFile = null,
113+
array $additionalParameters = [],
112114
): Container
113115
{
114116
[$allConfigFiles, $projectConfig] = $this->detectDuplicateIncludedFiles(
@@ -133,7 +135,7 @@ public function create(
133135
];
134136
$configurator->setDebugMode(true);
135137
$configurator->setTempDirectory($tempDirectory);
136-
$configurator->addParameters([
138+
$configurator->addParameters(array_merge([
137139
'rootDir' => $this->rootDirectory,
138140
'currentWorkingDirectory' => $this->currentWorkingDirectory,
139141
'cliArgumentsVariablesRegistered' => ini_get('register_argc_argv') === '1',
@@ -145,7 +147,7 @@ public function create(
145147
'usedLevel' => $usedLevel,
146148
'cliAutoloadFile' => $cliAutoloadFile,
147149
'env' => getenv(),
148-
]);
150+
], $additionalParameters));
149151
$configurator->addDynamicParameters([
150152
'singleReflectionFile' => $singleReflectionFile,
151153
'singleReflectionInsteadOfFile' => $singleReflectionInsteadOfFile,

src/DependencyInjection/DerivativeContainerFactory.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,9 @@ public function __construct(
4343

4444
/**
4545
* @param string[] $additionalConfigFiles
46+
* @param array<mixed> $additionalParameters
4647
*/
47-
public function create(array $additionalConfigFiles): Container
48+
public function create(array $additionalConfigFiles, array $additionalParameters = []): Container
4849
{
4950
$containerFactory = new ContainerFactory(
5051
$this->currentWorkingDirectory,
@@ -62,6 +63,7 @@ public function create(array $additionalConfigFiles): Container
6263
$this->cliAutoloadFile,
6364
$this->singleReflectionFile,
6465
$this->singleReflectionInsteadOfFile,
66+
$additionalParameters,
6567
);
6668
}
6769

src/PhpDoc/StubSourceLocatorFactory.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,15 @@
1717
final class StubSourceLocatorFactory
1818
{
1919

20+
/**
21+
* @param string[] $allStubFiles
22+
*/
2023
public function __construct(
2124
private Parser $php8Parser,
2225
private PhpStormStubsSourceStubber $phpStormStubsSourceStubber,
2326
private OptimizedSingleFileSourceLocatorRepository $optimizedSingleFileSourceLocatorRepository,
2427
private OptimizedPsrAutoloaderLocatorFactory $optimizedPsrAutoloaderLocatorFactory,
25-
private StubFilesProvider $stubFilesProvider,
28+
private array $allStubFiles,
2629
)
2730
{
2831
}
@@ -31,7 +34,7 @@ public function create(): SourceLocator
3134
{
3235
$locators = [];
3336
$astPhp8Locator = new Locator($this->php8Parser);
34-
foreach ($this->stubFilesProvider->getStubFiles() as $stubFile) {
37+
foreach ($this->allStubFiles as $stubFile) {
3538
$locators[] = $this->optimizedSingleFileSourceLocatorRepository->getOrCreate($stubFile);
3639
}
3740

src/PhpDoc/StubValidator.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ final class StubValidator
2626

2727
public function __construct(
2828
private DerivativeContainerFactory $derivativeContainerFactory,
29+
private StubFilesProvider $stubFilesProvider,
2930
)
3031
{
3132
}
@@ -46,6 +47,8 @@ public function validate(array $stubFiles, bool $debug): array
4647
try {
4748
$container = $this->derivativeContainerFactory->create([
4849
__DIR__ . '/../../conf/config.stubValidator.neon',
50+
], [
51+
'allStubFiles' => $this->stubFilesProvider->getStubFiles(),
4952
]);
5053

5154
$fileAnalyser = $container->getByType(FileAnalyser::class);

0 commit comments

Comments
 (0)