Improve extension support

This commit is contained in:
Shivam Mathur
2020-06-19 04:09:13 +05:30
parent 70954fb6f8
commit b9404683e1
13 changed files with 93 additions and 165 deletions

Binary file not shown.

Binary file not shown.

View File

@ -15,16 +15,6 @@ export async function addCoverageXdebug(
pipe: string
): Promise<string> {
switch (version) {
case '8.0':
return (
'\n' +
(await utils.addLog(
'$cross',
'xdebug',
'Xdebug currently only supports PHP 7.4 or lower',
os_version
))
);
case '7.4':
default:
return (

View File

@ -1,6 +1,24 @@
import * as path from 'path';
import * as utils from './utils';
/**
* Function to get Xdebug version compatible with php versions
*
* @param version
*/
export async function getXdebugVersion(version: string): Promise<string> {
switch (version) {
case '5.3':
return '2.2.7';
case '5.4':
return '2.4.1';
case '5.5':
return '2.5.5';
default:
return '2.9.6';
}
}
/**
* Install and enable extensions for darwin
*
@ -60,25 +78,22 @@ export async function addExtensionDarwin(
' ' +
ext_prefix;
return;
// match 5.3xdebug
case /5\.3xdebug/.test(version_extension):
command = command_prefix + 'xdebug-2.2.7' + pipe;
// match 5.3xdebug...5.5xdebug
case /5\.[3-5]xdebug/.test(version_extension):
command =
command_prefix + 'xdebug-' + (await getXdebugVersion(version));
break;
// match 5.4xdebug
case /5\.4xdebug/.test(version_extension):
command = command_prefix + 'xdebug-2.4.1' + pipe;
// match 5.6xdebug, 7.0xdebug...7.4xdebug, 8.0xdebug
case /(5\.6|7\.[0-4]|8\.[0-9])xdebug/.test(version_extension):
command = 'add_brew_extension xdebug';
break;
// match 5.5xdebug and 5.6xdebug
case /5\.[5-6]xdebug/.test(version_extension):
command = command_prefix + 'xdebug-2.5.5' + pipe;
break;
// match 7.0redis
case /7\.0xdebug/.test(version_extension):
command = command_prefix + 'xdebug-2.9.0' + pipe;
// match 7.1pcov...7.4pcov, 8.0pcov
case /(7\.[1-4]|8\.[0-9])pcov/.test(version_extension):
command = 'add_brew_extension pcov';
break;
// match 5.6redis
case /5\.6redis/.test(version_extension):
command = command_prefix + 'redis-2.2.8' + pipe;
command = command_prefix + 'redis-2.2.8';
break;
// match imagick
case /^imagick$/.test(extension):
@ -93,7 +108,7 @@ export async function addExtensionDarwin(
// match sqlite
case /^sqlite$/.test(extension):
extension = 'sqlite3';
command = command_prefix + extension + pipe;
command = command_prefix + extension;
break;
// match 7.0phalcon3...7.3phalcon3 and 7.2phalcon4...7.4phalcon4
case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension):
@ -106,7 +121,7 @@ export async function addExtensionDarwin(
version;
return;
default:
command = command_prefix + extension + pipe;
command = command_prefix + extension;
break;
}
add_script +=

View File

@ -91,6 +91,16 @@ add_pecl_extension() {
fi
}
# Function to install a php extension from shivammathur/extensions tap.
add_brew_extension() {
extension=$1
if ! brew tap | grep shivammathur/extensions; then
brew tap --shallow shivammathur/extensions
fi
brew install "$extension@$version"
sudo cp "$(brew --prefix)/opt/$extension@$version/$extension.so" "$ext_dir"
}
# Function to setup extensions
add_extension() {
extension=$1
@ -172,7 +182,7 @@ add_composertool() {
add_blackfire() {
sudo mkdir -p usr/local/var/run
brew tap blackfireio/homebrew-blackfire >/dev/null 2>&1
brew tap --shallow blackfireio/homebrew-blackfire >/dev/null 2>&1
brew install blackfire-agent >/dev/null 2>&1
if [[ -n $BLACKFIRE_SERVER_ID ]] && [[ -n $BLACKFIRE_SERVER_TOKEN ]]; then
sudo blackfire-agent --register --server-id="$BLACKFIRE_SERVER_ID" --server-token="$BLACKFIRE_SERVER_TOKEN" >/dev/null 2>&1
@ -212,7 +222,7 @@ update_formulae() {
setup_php() {
action=$1
export HOMEBREW_NO_INSTALL_CLEANUP=TRUE
brew tap shivammathur/homebrew-php
brew tap --shallow shivammathur/homebrew-php
if brew list php@"$version" 2>/dev/null | grep -q "Error" && [ "$action" != "upgrade" ]; then
brew unlink php@"$version"
else

View File

@ -120,7 +120,8 @@ add_pdo_extension() {
add_log "$tick" "$pdo_ext" "Enabled"
else
read -r ext ext_name <<< "$1 $1"
sudo rm -rf "$scan_dir"/*pdo.ini >/dev/null 2>&1 && echo "extension=pdo.so" >> "$ini_file"
sudo rm -rf "$scan_dir"/*pdo.ini >/dev/null 2>&1
if ! check_extension "pdo"; then echo "extension=pdo.so" >> "$ini_file"; fi
if [ "$ext" = "mysql" ]; then
enable_extension "mysqlnd" "extension"
ext_name="mysqli"

View File

@ -362,7 +362,8 @@ if($version -lt "5.5") {
}
Update-PhpCAInfo -Path $php_dir -Source $cert_source
if ($version -eq 'master') {
Copy-Item $dir"\..\src\bin\php_$env:PHPTS`_pcov.dll" -Destination $ext_dir"\php_pcov.dll"
Invoke-WebRequest -UseBasicParsing -Uri "https://github.com/shivammathur/php-extensions-windows/releases/latest/download/php_$env:phpts`_$arch`_pcov.dll" -OutFile $ext_dir"\php_pcov.dll" >$null 2>&1
Invoke-WebRequest -UseBasicParsing -Uri "https://github.com/shivammathur/php-extensions-windows/releases/latest/download/php_$env:phpts`_$arch`_xdebug.dll" -OutFile $ext_dir"\php_xdebug.dll" >$null 2>&1
Set-PhpIniKey -Key 'opcache.jit_buffer_size' -Value '256M' -Path $php_dir
Set-PhpIniKey -Key 'opcache.jit' -Value '1235' -Path $php_dir
}