Skip to content

Commit 8e82994

Browse files
committed
Refactor ComposerPhpVersionFactory
1 parent 7eef99a commit 8e82994

File tree

1 file changed

+9
-16
lines changed

1 file changed

+9
-16
lines changed

src/Php/ComposerPhpVersionFactory.php

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,12 @@
33
namespace PHPStan\Php;
44

55
use Composer\Semver\VersionParser;
6-
use Nette\Utils\Json;
7-
use Nette\Utils\JsonException;
86
use Nette\Utils\Strings;
9-
use PHPStan\File\CouldNotReadFileException;
10-
use PHPStan\File\FileReader;
7+
use PHPStan\Internal\ComposerHelper;
118
use PHPStan\ShouldNotHappenException;
129
use function count;
1310
use function end;
1411
use function is_array;
15-
use function is_file;
1612
use function is_int;
1713
use function is_string;
1814
use function min;
@@ -114,21 +110,18 @@ public function getMaxVersion(): ?PhpVersion
114110
private function getComposerRequireVersion(): ?string
115111
{
116112
$composerPhpVersion = null;
113+
117114
if (count($this->composerAutoloaderProjectPaths) > 0) {
118-
$composerJsonPath = end($this->composerAutoloaderProjectPaths) . '/composer.json';
119-
if (is_file($composerJsonPath)) {
120-
try {
121-
$composerJsonContents = FileReader::read($composerJsonPath);
122-
$composer = Json::decode($composerJsonContents, Json::FORCE_ARRAY);
123-
$requiredVersion = $composer['require']['php'] ?? null;
124-
if (is_string($requiredVersion)) {
125-
$composerPhpVersion = $requiredVersion;
126-
}
127-
} catch (CouldNotReadFileException | JsonException) {
128-
// pass
115+
$composer = ComposerHelper::getComposerConfig(end($this->composerAutoloaderProjectPaths));
116+
if ($composer !== null) {
117+
$requiredVersion = $composer['require']['php'] ?? null;
118+
119+
if (is_string($requiredVersion)) {
120+
$composerPhpVersion = $requiredVersion;
129121
}
130122
}
131123
}
124+
132125
return $composerPhpVersion;
133126
}
134127

0 commit comments

Comments
 (0)