diff --git a/src/SPC/command/BuildPHPCommand.php b/src/SPC/command/BuildPHPCommand.php
index de6a2b52f..66aab328d 100644
--- a/src/SPC/command/BuildPHPCommand.php
+++ b/src/SPC/command/BuildPHPCommand.php
@@ -79,12 +79,12 @@ public function handle(): int
if ($rule === BUILD_TARGET_NONE) {
$this->output->writeln('Please add at least one build SAPI!');
- $this->output->writeln("\t--build-cli\tBuild php-cli SAPI");
- $this->output->writeln("\t--build-micro\tBuild phpmicro SAPI");
- $this->output->writeln("\t--build-fpm\tBuild php-fpm SAPI");
- $this->output->writeln("\t--build-embed\tBuild embed SAPI/libphp");
+ $this->output->writeln("\t--build-cli\t\tBuild php-cli SAPI");
+ $this->output->writeln("\t--build-micro\t\tBuild phpmicro SAPI");
+ $this->output->writeln("\t--build-fpm\t\tBuild php-fpm SAPI");
+ $this->output->writeln("\t--build-embed\t\tBuild embed SAPI/libphp");
$this->output->writeln("\t--build-frankenphp\tBuild FrankenPHP SAPI/libphp");
- $this->output->writeln("\t--build-all\tBuild all SAPI: cli, micro, fpm, embed, frankenphp");
+ $this->output->writeln("\t--build-all\t\tBuild all SAPI: cli, micro, fpm, embed, frankenphp");
return static::FAILURE;
}
if ($rule === BUILD_TARGET_ALL) {
@@ -295,13 +295,14 @@ private function parseRules(array $shared_extensions = []): int
$rule |= ($this->getOption('build-micro') ? BUILD_TARGET_MICRO : BUILD_TARGET_NONE);
$rule |= ($this->getOption('build-fpm') ? BUILD_TARGET_FPM : BUILD_TARGET_NONE);
$embed = $this->getOption('build-embed');
- if (!$embed && !empty($shared_extensions)) {
- $embed = true;
- }
+ $embed = match ($embed) {
+ null => getenv('SPC_CMD_VAR_PHP_EMBED_TYPE') ?: 'static',
+ 'static' => 'static',
+ 'shared' => 'shared',
+ false => false,
+ default => throw new WrongUsageException('Invalid --build-embed option, please use --build-embed[=static|shared]'),
+ };
if ($embed) {
- if ($embed === true) {
- $embed = getenv('SPC_CMD_VAR_PHP_EMBED_TYPE') ?: 'static';
- }
$rule |= BUILD_TARGET_EMBED;
f_putenv('SPC_CMD_VAR_PHP_EMBED_TYPE=' . ($embed === 'static' ? 'static' : 'shared'));
}