mirror of
https://github.com/crazywhalecc/static-php-cli.git
synced 2026-03-18 21:04:52 +08:00
Make PhpExtensionPackage::getSharedExtensionLoadString public
This commit is contained in:
parent
98a618f1cd
commit
b1a59dad79
@ -327,6 +327,34 @@ class PhpExtensionPackage extends Package
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Builds the `-d extension_dir=... -d extension=...` string for all resolved shared extensions.
|
||||
* Used in CLI smoke test to load shared extension dependencies at runtime.
|
||||
*/
|
||||
public function getSharedExtensionLoadString(): string
|
||||
{
|
||||
$sharedExts = array_filter(
|
||||
$this->getInstaller()->getResolvedPackages(PhpExtensionPackage::class),
|
||||
fn (PhpExtensionPackage $ext) => $ext->isBuildShared() && !$ext->isBuildWithPhp()
|
||||
);
|
||||
|
||||
if (empty($sharedExts)) {
|
||||
return '';
|
||||
}
|
||||
|
||||
$ret = ' -d "extension_dir=' . BUILD_MODULES_PATH . '"';
|
||||
foreach ($sharedExts as $ext) {
|
||||
$extConfig = PackageConfig::get($ext->getName(), 'php-extension', []);
|
||||
if ($extConfig['zend-extension'] ?? false) {
|
||||
$ret .= ' -d "zend_extension=' . $ext->getExtensionName() . '"';
|
||||
} else {
|
||||
$ret .= ' -d "extension=' . $ext->getExtensionName() . '"';
|
||||
}
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Splits a given string of library flags into static and shared libraries.
|
||||
*
|
||||
@ -354,34 +382,6 @@ class PhpExtensionPackage extends Package
|
||||
return [trim($staticLibString), trim($sharedLibString)];
|
||||
}
|
||||
|
||||
/**
|
||||
* Builds the `-d extension_dir=... -d extension=...` string for all resolved shared extensions.
|
||||
* Used in CLI smoke test to load shared extension dependencies at runtime.
|
||||
*/
|
||||
private function getSharedExtensionLoadString(): string
|
||||
{
|
||||
$sharedExts = array_filter(
|
||||
$this->getInstaller()->getResolvedPackages(PhpExtensionPackage::class),
|
||||
fn (PhpExtensionPackage $ext) => $ext->isBuildShared() && !$ext->isBuildWithPhp()
|
||||
);
|
||||
|
||||
if (empty($sharedExts)) {
|
||||
return '';
|
||||
}
|
||||
|
||||
$ret = ' -d "extension_dir=' . BUILD_MODULES_PATH . '"';
|
||||
foreach ($sharedExts as $ext) {
|
||||
$extConfig = PackageConfig::get($ext->getName(), 'php-extension', []);
|
||||
if ($extConfig['zend-extension'] ?? false) {
|
||||
$ret .= ' -d "zend_extension=' . $ext->getExtensionName() . '"';
|
||||
} else {
|
||||
$ret .= ' -d "extension=' . $ext->getExtensionName() . '"';
|
||||
}
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Escape PHP test file content for inline `-r` usage.
|
||||
* Strips <?php / declare, replaces newlines and special shell characters.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user