mirror of
https://github.com/shivammathur/setup-php.git
synced 2025-09-08 05:44:07 +07:00
Add support to remove all shared extensions
This commit is contained in:
@ -23,6 +23,10 @@ export async function addExtensionDarwin(
|
||||
case /^:/.test(ext_name):
|
||||
remove_script += '\ndisable_extension' + ext_name.replace(/:/g, ' ');
|
||||
return;
|
||||
// Match none
|
||||
case /^none$/.test(ext_name):
|
||||
add_script += '\ndisable_all_shared';
|
||||
return;
|
||||
// match extensions for compiling from source
|
||||
case /.+-.+\/.+@.+/.test(extension):
|
||||
add_script += await utils.parseExtensionSource(extension, ext_prefix);
|
||||
@ -117,6 +121,10 @@ export async function addExtensionWindows(
|
||||
case /^:/.test(ext_name):
|
||||
remove_script += '\nDisable-Extension' + ext_name.replace(/:/g, ' ');
|
||||
break;
|
||||
// Match none
|
||||
case /^none$/.test(ext_name):
|
||||
add_script += '\nDisable-AllShared';
|
||||
break;
|
||||
// match 5.3blackfire...8.0blackfire
|
||||
// match 5.3blackfire-(semver)...8.0blackfire-(semver)
|
||||
// match pdo_oci and oci8
|
||||
@ -229,6 +237,10 @@ export async function addExtensionLinux(
|
||||
case /^:/.test(ext_name):
|
||||
remove_script += '\ndisable_extension' + ext_name.replace(/:/g, ' ');
|
||||
return;
|
||||
// Match none
|
||||
case /^none$/.test(ext_name):
|
||||
add_script += '\ndisable_all_shared';
|
||||
return;
|
||||
// match extensions for compiling from source
|
||||
case /.+-.+\/.+@.+/.test(extension):
|
||||
add_script += await utils.parseExtensionSource(extension, ext_prefix);
|
||||
|
@ -183,6 +183,13 @@ disable_extension() {
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to disable shared extensions.
|
||||
disable_all_shared() {
|
||||
sudo sed -i.orig -E -e "/^(zend_)?extension\s*=/d" "${ini_file[@]}" "$pecl_file" 2>/dev/null || true
|
||||
sudo find "${ini_dir:-$scan_dir}"/.. -name "*.ini" -not -path "*php.ini" -not -path "*mods-available*" -delete >/dev/null 2>&1 || true
|
||||
add_log "${tick:?}" "none" "Disabled all shared extensions"
|
||||
}
|
||||
|
||||
# Function to configure PHP
|
||||
configure_php() {
|
||||
(
|
||||
|
@ -307,6 +307,12 @@ Function Disable-Extension() {
|
||||
}
|
||||
}
|
||||
|
||||
# Function to disable shared extensions.
|
||||
Function Disable-AllShared() {
|
||||
(Get-Content $php_dir\php.ini) | Where-Object {$_ -notmatch '^(zend_)?extension\s*='} | Set-Content $php_dir\php.ini
|
||||
Add-Log $tick "none" "Disabled all shared extensions"
|
||||
}
|
||||
|
||||
# Function to configure composer.
|
||||
Function Edit-ComposerConfig() {
|
||||
Param(
|
||||
|
27
src/utils.ts
27
src/utils.ts
@ -280,18 +280,21 @@ export async function extensionArray(
|
||||
case ' ':
|
||||
return [];
|
||||
default:
|
||||
return extension_csv
|
||||
.split(',')
|
||||
.map(function (extension: string) {
|
||||
if (/.+-.+\/.+@.+/.test(extension)) {
|
||||
return extension;
|
||||
}
|
||||
return extension
|
||||
.trim()
|
||||
.toLowerCase()
|
||||
.replace(/^(:)?(php[-_]|zend )/, '$1');
|
||||
})
|
||||
.filter(Boolean);
|
||||
return [
|
||||
extension_csv.match(/(^|,\s?)none(\s?,|$)/) ? 'none' : '',
|
||||
...extension_csv
|
||||
.split(',')
|
||||
|
||||
.map(function (extension: string) {
|
||||
if (/.+-.+\/.+@.+/.test(extension)) {
|
||||
return extension;
|
||||
}
|
||||
return extension
|
||||
.trim()
|
||||
.toLowerCase()
|
||||
.replace(/^(:)?(php[-_]|none|zend )/, '$1');
|
||||
})
|
||||
].filter(Boolean);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user