Validate cached Xdebug 2 on macOS

This commit is contained in:
Shivam Mathur
2026-09-03 19:54:15 +05:30
parent e4c0f64cb6
commit 1d62418c5a
6 changed files with 21 additions and 3 deletions
+9
View File
@@ -84,6 +84,15 @@ export async function addExtensionDarwin(
case /(5\.[3-6]|7\.0)pcov/.test(version_extension):
add_script += await utils.getUnsupportedLog('pcov', version, 'darwin');
return;
// match 7.2xdebug2 to 7.4xdebug2
case /^7\.[2-4]xdebug2$/.test(version_extension):
add_script += await utils.joins(
'\nadd_brew_extension',
'xdebug2',
ext_prefix,
'2.9.8'
);
return;
// match brew extensions
case /(?<!5\.[3-5])(amqp|apcu|brotli|excimer|expect|gmagick|gnupg|grpc|igbinary|imagick|imap|interbase|lua|mailparse|maxminddb|mcrypt|memcache|memcached|mongodb|mongodb1|msgpack|newrelic|oauth|opentelemetry|pdo_firebird|pinba|protobuf|psr|raphf|rdkafka|redis|scalar_objects|seaslog|snmp|spx|ssh2|swoole|uopz|uploadprogress|uuid|vld|xdebug|xdebug2|xhprof|yaml|zmq|zstd)/.test(
version_extension
+2 -1
View File
@@ -75,9 +75,10 @@ copy_brew_extensions() {
add_brew_extension() {
formula=$1
prefix=$2
expected_version=${3:-}
extension="$(get_extension_from_formula "$formula")"
enable_extension "$extension" "$prefix"
if check_extension "$extension"; then
if check_extension "$extension" && { [ -z "$expected_version" ] || check_extension_version "$extension" "$expected_version"; }; then
add_log "${tick:?}" "$extension" "Enabled"
else
add_brew_tap "$php_tap"
+7
View File
@@ -21,6 +21,13 @@ check_extension() {
fi
}
# Function to test the loaded version of an extension.
check_extension_version() {
local extension=$1
local ext_version=$2
php -d display_errors=0 -r "exit(phpversion(\$argv[1]) === \$argv[2] ? 0 : 1);" -- "$extension" "$ext_version" >/dev/null 2>&1
}
# Function to check if extension is shared
shared_extension() {
[ -e "${ext_dir:?}/$1.so" ]