Compare complete Windows extension versions

This commit is contained in:
Shivam Mathur
2026-09-12 00:32:42 +05:30
parent e6ee35895b
commit 2ec764e0ab
+7 -2
View File
@@ -104,6 +104,7 @@ Function Add-Extension {
[string] [string]
$extension_version = '' $extension_version = ''
) )
$extension_backup = ''
try { try {
$deps_dir = "$ext_dir\$extension-vc$($installed.VCVersion)-$arch" $deps_dir = "$ext_dir\$extension-vc$($installed.VCVersion)-$arch"
New-Item $deps_dir -Type Directory -Force > $null 2>&1 New-Item $deps_dir -Type Directory -Force > $null 2>&1
@@ -113,7 +114,7 @@ Function Add-Extension {
return return
} }
$extension_info = Get-PhpExtension -Path $php_dir | Where-Object { $_.Name -eq $extension -or $_.Handle -eq $extension } $extension_info = Get-PhpExtension -Path $php_dir | Where-Object { $_.Name -eq $extension -or $_.Handle -eq $extension }
if ($null -ne $extension_info -and ($extension_version -eq '' -or $extension_info.Version[0] -eq $extension_version)) { if ($null -ne $extension_info -and ($extension_version -eq '' -or $extension_info.Version -eq $extension_version)) {
switch ($extension_info.State) { switch ($extension_info.State) {
'Builtin' { 'Builtin' {
Add-Log $tick $extension "Enabled" Add-Log $tick $extension "Enabled"
@@ -143,7 +144,8 @@ Function Add-Extension {
} }
# If extension for a different version exists # If extension for a different version exists
if(Test-Path $ext_dir\php_$extension.dll) { if(Test-Path $ext_dir\php_$extension.dll) {
Move-Item $ext_dir\php_$extension.dll $ext_dir\php_$extension.bak.dll -Force Move-Item $ext_dir\php_$extension.dll $ext_dir\php_$extension.bak.dll -Force -ErrorAction Stop
$extension_backup = "$ext_dir\php_$extension.bak.dll"
} }
Install-PhpExtension @params Install-PhpExtension @params
Set-ExtensionPrerequisites $extension Set-ExtensionPrerequisites $extension
@@ -154,6 +156,9 @@ Function Add-Extension {
Copy-Item "$ext_dir\php_$extension.dll" "$ext_dir\$extension-$extension_version" -Force Copy-Item "$ext_dir\php_$extension.dll" "$ext_dir\$extension-$extension_version" -Force
} }
} catch { } catch {
if($extension_backup -ne '') {
Move-Item $extension_backup "$ext_dir\php_$extension.dll" -Force
}
Add-Log $cross $extension "Could not install $extension on PHP $( $installed.FullVersion )" Add-Log $cross $extension "Could not install $extension on PHP $( $installed.FullVersion )"
} }
} }