Add extension version and env check method (#458)

This commit is contained in:
Jerry Ma 2024-05-21 14:56:54 +08:00 committed by GitHub
parent 11076b1355
commit 4ba92b08ca
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 29 additions and 8 deletions

View File

@ -16,9 +16,8 @@ use SPC\command\DumpLicenseCommand;
use SPC\command\ExtractCommand; use SPC\command\ExtractCommand;
use SPC\command\InstallPkgCommand; use SPC\command\InstallPkgCommand;
use SPC\command\MicroCombineCommand; use SPC\command\MicroCombineCommand;
use SPC\command\SwitchPhpVersionCommand;
use Symfony\Component\Console\Application; use Symfony\Component\Console\Application;
use Symfony\Component\Console\Command\HelpCommand;
use Symfony\Component\Console\Command\ListCommand;
/** /**
* static-php-cli console app entry * static-php-cli console app entry
@ -43,6 +42,7 @@ final class ConsoleApplication extends Application
new DumpLicenseCommand(), new DumpLicenseCommand(),
new ExtractCommand(), new ExtractCommand(),
new MicroCombineCommand(), new MicroCombineCommand(),
new SwitchPhpVersionCommand(),
// Dev commands // Dev commands
new AllExtCommand(), new AllExtCommand(),
@ -51,9 +51,4 @@ final class ConsoleApplication extends Application
] ]
); );
} }
protected function getDefaultCommands(): array
{
return [new HelpCommand(), new ListCommand()];
}
} }

View File

@ -18,7 +18,7 @@ class opcache extends Extension
*/ */
public function validate(): void public function validate(): void
{ {
if ($this->builder->getPHPVersionID() < 80000) { if ($this->builder->getPHPVersionID() < 80000 && getenv('SPC_SKIP_PHP_VERSION_CHECK') !== 'yes') {
throw new WrongUsageException('Statically compiled PHP with Zend Opcache only available for PHP >= 8.0 !'); throw new WrongUsageException('Statically compiled PHP with Zend Opcache only available for PHP >= 8.0 !');
} }
} }

View File

@ -0,0 +1,19 @@
<?php
declare(strict_types=1);
namespace SPC\builder\extension;
use SPC\builder\Extension;
use SPC\util\CustomExt;
#[CustomExt('protobuf')]
class protobuf extends Extension
{
public function validate(): void
{
if ($this->builder->getPHPVersionID() < 80000 && getenv('SPC_SKIP_PHP_VERSION_CHECK') !== 'yes') {
throw new \RuntimeException('The latest protobuf extension requires PHP 8.0 or later');
}
}
}

View File

@ -11,6 +11,13 @@ use SPC\util\CustomExt;
#[CustomExt('swow')] #[CustomExt('swow')]
class swow extends Extension class swow extends Extension
{ {
public function validate(): void
{
if ($this->builder->getPHPVersionID() < 80000 && getenv('SPC_SKIP_PHP_VERSION_CHECK') !== 'yes') {
throw new RuntimeException('The latest swow extension requires PHP 8.0 or later');
}
}
public function getUnixConfigureArg(): string public function getUnixConfigureArg(): string
{ {
$arg = '--enable-swow'; $arg = '--enable-swow';