From 2649dcd05cc0f3aaa138b82d317adef42b9154c3 Mon Sep 17 00:00:00 2001 From: crazywhalecc Date: Fri, 16 Feb 2024 18:56:59 +0800 Subject: [PATCH] add BuilderBase::getPHPVersionFromArchive --- src/SPC/builder/BuilderBase.php | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/SPC/builder/BuilderBase.php b/src/SPC/builder/BuilderBase.php index ed7a21a3..2314a7f2 100644 --- a/src/SPC/builder/BuilderBase.php +++ b/src/SPC/builder/BuilderBase.php @@ -231,6 +231,30 @@ abstract class BuilderBase throw new RuntimeException('PHP version file format is malformed, please remove it and download again'); } + /** + * Get PHP version from archive file name. + * + * @param null|string $file php-*.*.*.tar.gz filename, read from lockfile if empty + */ + public function getPHPVersionFromArchive(?string $file = null): false|string + { + if ($file === null) { + $lock = file_exists(DOWNLOAD_PATH . '/.lock.json') ? file_get_contents(DOWNLOAD_PATH . '/.lock.json') : false; + if ($lock === false) { + return false; + } + $lock = json_decode($lock, true); + $file = $lock['php-src']['filename'] ?? null; + if ($file === null) { + return false; + } + } + if (preg_match('/php-(\d+\.\d+\.\d+)/', $file, $match)) { + return $match[1]; + } + return false; + } + /** * Get build type name string to display. *