Add support for reading PHP version from composer.lock or composer.json

This commit is contained in:
Jason Gill
2023-07-29 19:46:06 -04:00
parent 72ae4ccbe5
commit a5fb328c6a
3 changed files with 78 additions and 0 deletions

View File

@ -440,6 +440,38 @@ export async function readPHPVersion(): Promise<string> {
} else if (versionFile !== '.php-version') {
throw new Error(`Could not find '${versionFile}' file.`);
}
const composerLock = 'composer.lock';
if (fs.existsSync(composerLock)) {
const lockFileContents = JSON.parse(fs.readFileSync(composerLock, 'utf8'));
if (
lockFileContents['platform-overrides'] &&
lockFileContents['platform-overrides']['php']
) {
return lockFileContents['platform-overrides']['php'];
}
}
const composerJson = 'composer.json';
if (fs.existsSync(composerJson)) {
const composerFileContents = JSON.parse(
fs.readFileSync(composerJson, 'utf8')
);
if (
composerFileContents['config'] &&
composerFileContents['config']['platform'] &&
composerFileContents['config']['platform']['php']
) {
return composerFileContents['config']['platform']['php'];
}
if (
composerFileContents['require'] &&
composerFileContents['require']['php']
) {
return composerFileContents['require']['php'];
}
}
return 'latest';
}