setup-php 2.13.0 → 2.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +990 -922
  3. package/lib/config.d.ts +3 -0
  4. package/lib/config.js +71 -71
  5. package/lib/config.js.map +1 -1
  6. package/lib/coverage.d.ts +5 -0
  7. package/lib/coverage.js +97 -87
  8. package/lib/coverage.js.map +1 -1
  9. package/lib/extensions.d.ts +4 -0
  10. package/lib/extensions.js +214 -200
  11. package/lib/extensions.js.map +1 -1
  12. package/lib/fetch.d.ts +1 -0
  13. package/lib/fetch.js +63 -0
  14. package/lib/fetch.js.map +1 -0
  15. package/lib/install.d.ts +2 -0
  16. package/lib/install.js +75 -81
  17. package/lib/install.js.map +1 -1
  18. package/lib/tools.d.ts +23 -0
  19. package/lib/tools.js +367 -386
  20. package/lib/tools.js.map +1 -1
  21. package/lib/utils.d.ts +21 -0
  22. package/lib/utils.js +261 -291
  23. package/lib/utils.js.map +1 -1
  24. package/package.json +67 -56
  25. package/src/config.ts +82 -82
  26. package/src/configs/brew_extensions +31 -0
  27. package/src/configs/composer.env +2 -0
  28. package/src/configs/ini/jit.ini +3 -0
  29. package/src/configs/ini/php.ini +2 -0
  30. package/src/configs/ini/xdebug.ini +1 -0
  31. package/src/configs/os_releases.csv +19 -17
  32. package/src/configs/php-versions.json +6 -5
  33. package/src/configs/php_packages +12 -0
  34. package/src/configs/{php.json → pm/php.json} +29 -29
  35. package/src/configs/{phpunit.json → pm/phpunit.json} +24 -24
  36. package/src/configs/tools.json +278 -235
  37. package/src/configs/tools_schema.json +125 -114
  38. package/src/coverage.ts +144 -142
  39. package/src/extensions.ts +367 -349
  40. package/src/fetch.ts +54 -0
  41. package/src/install.ts +66 -82
  42. package/src/scripts/darwin.sh +285 -249
  43. package/src/scripts/extensions/add_extensions.ps1 +194 -0
  44. package/src/scripts/extensions/add_extensions.sh +184 -0
  45. package/src/scripts/{ext → extensions}/blackfire.ps1 +32 -32
  46. package/src/scripts/{ext → extensions}/blackfire.sh +22 -21
  47. package/src/scripts/{ext → extensions}/couchbase.sh +43 -43
  48. package/src/scripts/{ext → extensions}/cubrid.sh +60 -60
  49. package/src/scripts/extensions/extension_map.php +132 -0
  50. package/src/scripts/{ext → extensions}/firebird.ps1 +19 -19
  51. package/src/scripts/{ext → extensions}/firebird.sh +39 -35
  52. package/src/scripts/{ext → extensions}/gearman.sh +22 -22
  53. package/src/scripts/{ext → extensions}/geos.sh +17 -17
  54. package/src/scripts/{ext → extensions}/http.ps1 +54 -54
  55. package/src/scripts/{ext → extensions}/http.sh +109 -120
  56. package/src/scripts/{ext → extensions}/intl.sh +23 -23
  57. package/src/scripts/{ext → extensions}/ioncube.ps1 +33 -32
  58. package/src/scripts/{ext → extensions}/ioncube.sh +21 -19
  59. package/src/scripts/{ext → extensions}/oci.ps1 +85 -60
  60. package/src/scripts/{ext → extensions}/oci.sh +65 -63
  61. package/src/scripts/{ext → extensions}/patches/firebird.sh +11 -11
  62. package/src/scripts/{ext → extensions}/patches/geos.sh +7 -7
  63. package/src/scripts/{ext → extensions}/patches/http.sh +11 -11
  64. package/src/scripts/{ext → extensions}/patches/pdo_oci.sh +6 -6
  65. package/src/scripts/{ext → extensions}/patches/phpize.sh +26 -26
  66. package/src/scripts/{ext → extensions}/patches/protobuf.sh +4 -4
  67. package/src/scripts/{ext → extensions}/phalcon.ps1 +54 -54
  68. package/src/scripts/{ext → extensions}/phalcon.sh +58 -58
  69. package/src/scripts/{ext → extensions}/source.sh +145 -144
  70. package/src/scripts/extensions/sqlsrv.sh +15 -0
  71. package/src/scripts/linux.sh +269 -256
  72. package/src/scripts/tools/add_tools.ps1 +239 -26
  73. package/src/scripts/tools/add_tools.sh +175 -20
  74. package/src/scripts/tools/blackfire.ps1 +19 -19
  75. package/src/scripts/tools/blackfire.sh +40 -39
  76. package/src/scripts/tools/grpc_php_plugin.ps1 +21 -21
  77. package/src/scripts/tools/grpc_php_plugin.sh +58 -58
  78. package/src/scripts/tools/ppa.sh +192 -151
  79. package/src/scripts/tools/protoc.ps1 +38 -38
  80. package/src/scripts/tools/protoc.sh +28 -28
  81. package/src/scripts/tools/symfony.ps1 +14 -0
  82. package/src/scripts/tools/symfony.sh +13 -0
  83. package/src/scripts/unix.sh +186 -0
  84. package/src/scripts/win32.ps1 +352 -494
  85. package/src/tools.ts +512 -538
  86. package/src/utils.ts +415 -500
  87. package/.eslintrc.json +0 -16
  88. package/.github/CODE_OF_CONDUCT.md +0 -76
  89. package/.github/CONTRIBUTING.md +0 -70
  90. package/.github/FUNDING.yml +0 -7
  91. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -42
  92. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -26
  93. package/.github/PULL_REQUEST_TEMPLATE.md +0 -37
  94. package/.github/SECURITY.md +0 -29
  95. package/.github/workflows/docs.yml +0 -77
  96. package/.github/workflows/node-workflow.yml +0 -51
  97. package/.github/workflows/workflow.yml +0 -78
  98. package/.idea/workspace.xml +0 -113
  99. package/.prettierrc.json +0 -12
  100. package/__tests__/config.test.ts +0 -52
  101. package/__tests__/coverage.test.ts +0 -110
  102. package/__tests__/extensions.test.ts +0 -263
  103. package/__tests__/install.test.ts +0 -175
  104. package/__tests__/tools.test.ts +0 -524
  105. package/__tests__/utils.test.ts +0 -307
  106. package/action.yml +0 -29
  107. package/dist/index.js +0 -3051
  108. package/examples/bedrock.yml +0 -32
  109. package/examples/blackfire-player.yml +0 -31
  110. package/examples/blackfire.yml +0 -31
  111. package/examples/cakephp-mysql.yml +0 -114
  112. package/examples/cakephp-postgres.yml +0 -112
  113. package/examples/cakephp.yml +0 -92
  114. package/examples/codeigniter.yml +0 -34
  115. package/examples/laravel-mysql.yml +0 -74
  116. package/examples/laravel-postgres.yml +0 -74
  117. package/examples/laravel.yml +0 -42
  118. package/examples/lumen-mysql.yml +0 -74
  119. package/examples/lumen-postgres.yml +0 -74
  120. package/examples/lumen.yml +0 -38
  121. package/examples/phalcon-mysql.yml +0 -74
  122. package/examples/phalcon-postgres.yml +0 -73
  123. package/examples/sage.yml +0 -57
  124. package/examples/slim-framework.yml +0 -34
  125. package/examples/symfony-mysql.yml +0 -57
  126. package/examples/symfony-postgres.yml +0 -55
  127. package/examples/symfony.yml +0 -39
  128. package/examples/yii2-mysql.yml +0 -73
  129. package/examples/yii2-postgres.yml +0 -71
  130. package/examples/zend-framework.yml +0 -36
  131. package/jest.config.js +0 -12
  132. package/lib/sapi.js +0 -64
  133. package/src/scripts/common.sh +0 -314
  134. package/tsconfig.json +0 -18
@@ -1,63 +1,65 @@
1
- # Function to log result of a operation.
2
- add_license_log() {
3
- printf "::group::\033[34;1m%s \033[0m\033[90;1m%s \033[0m\n" "$ext" "Click to read the $ext related license information"
4
- printf "Oracle Instant Client package is required for %s extension.\n" "$ext"
5
- printf "It is provided under the Oracle Technology Network Development and Distribution License.\n"
6
- printf "Refer to: \033[35;1m%s \033[0m\n" "https://www.oracle.com/downloads/licenses/instant-client-lic.html"
7
- echo "::endgroup::"
8
- }
9
-
10
- # Function to install instantclient and SDK.
11
- add_client() {
12
- if [ ! -e "$oracle_client" ]; then
13
- sudo mkdir -p -m 777 "$oracle_home" "$oracle_client"
14
- for package in basiclite sdk; do
15
- if [ "$os" = 'Linux' ]; then
16
- libs='/usr/lib/'
17
- os_name='linux'
18
- arch='linuxx64'
19
- lib_ext='so'
20
- elif [ "$os" = 'Darwin' ]; then
21
- libs='/usr/local/lib/'
22
- os_name='mac'
23
- arch='macos'
24
- lib_ext='dylib'
25
- fi
26
- get -q -n "/opt/oracle/$package.zip" "https://download.oracle.com/otn_software/$os_name/instantclient/instantclient-$package-$arch.zip"
27
- unzip -o "/opt/oracle/$package.zip" -d "$oracle_home"
28
- done
29
- for icdir in /opt/oracle/instantclient_*; do
30
- sudo mv "$icdir"/* "$oracle_client"/
31
- done
32
- sudo ln -sf /opt/oracle/instantclient/*.$lib_ext* $libs
33
- fi
34
- }
35
-
36
- # Function to install oci8 and pdo_oci.
37
- add_oci_helper() {
38
- if ! [ -e "${ext_dir:?}/$ext.so" ]; then
39
- status='Installed and enabled'
40
- read -r "${ext}_LINUX_LIBS" <<< "libaio-dev"
41
- read -r "${ext}_CONFIGURE_OPTS" <<< "--with-php-config=$(command -v php-config) --with-${ext/_/-}=instantclient,$oracle_client"
42
- read -r "${ext}_PATH" <<< "ext/$ext"
43
- patch_phpize
44
- add_extension_from_source "$ext" https://github.com php php-src "$(php_src_tag)" extension get
45
- restore_phpize
46
- fi
47
- }
48
-
49
- # Function to add oci extension oci8 and pdo_oci.
50
- add_oci() {
51
- ext=$1
52
- status='Enabled'
53
- oracle_home='/opt/oracle'
54
- oracle_client=$oracle_home/instantclient
55
- os=$(uname -s)
56
- add_client >/dev/null 2>&1
57
- add_oci_helper >/dev/null 2>&1
58
- add_extension_log "$ext" "$status"
59
- check_extension "$ext" && add_license_log
60
- }
61
-
62
- # shellcheck source=.
63
- . "${scripts:?}"/ext/patches/phpize.sh
1
+ # Function to log result of a operation.
2
+ add_license_log() {
3
+ printf "$GROUP\033[34;1m%s \033[0m\033[90;1m%s \033[0m\n" "$ext" "Click to read the $ext related license information"
4
+ printf "Oracle Instant Client package is required for %s extension.\n" "$ext"
5
+ printf "It is provided under the Oracle Technology Network Development and Distribution License.\n"
6
+ printf "Refer to: \033[35;1m%s \033[0m\n" "https://www.oracle.com/downloads/licenses/instant-client-lic.html"
7
+ echo "$END_GROUP"
8
+ }
9
+
10
+ # Function to install instantclient and SDK.
11
+ add_client() {
12
+ if [ ! -e "$oracle_client" ]; then
13
+ sudo mkdir -p -m 777 "$oracle_home" "$oracle_client"
14
+ for package in basiclite sdk; do
15
+ if [ "$os" = 'Linux' ]; then
16
+ libs='/usr/lib/'
17
+ os_name='linux'
18
+ arch='linuxx64'
19
+ lib_ext='so'
20
+ elif [ "$os" = 'Darwin' ]; then
21
+ libs='/usr/local/lib/'
22
+ os_name='mac'
23
+ arch='macos'
24
+ lib_ext='dylib'
25
+ fi
26
+ get -q -n "/opt/oracle/$package.zip" "https://download.oracle.com/otn_software/$os_name/instantclient/instantclient-$package-$arch.zip"
27
+ unzip -o "/opt/oracle/$package.zip" -d "$oracle_home"
28
+ done
29
+ for icdir in /opt/oracle/instantclient_*; do
30
+ sudo mv "$icdir"/* "$oracle_client"/
31
+ done
32
+ sudo ln -sf /opt/oracle/instantclient/*.$lib_ext* $libs
33
+ fi
34
+ }
35
+
36
+ # Function to install oci8 and pdo_oci.
37
+ add_oci_helper() {
38
+ if ! shared_extension "$ext"; then
39
+ status='Installed and enabled'
40
+ read -r "${ext}_LINUX_LIBS" <<< "libaio-dev"
41
+ read -r "${ext}_CONFIGURE_OPTS" <<< "--with-php-config=$(command -v php-config) --with-${ext/_/-}=instantclient,$oracle_client"
42
+ read -r "${ext}_PATH" <<< "ext/$ext"
43
+ patch_phpize
44
+ add_extension_from_source "$ext" https://github.com php php-src "$(php_src_tag)" extension get
45
+ restore_phpize
46
+ else
47
+ enable_extension "$ext" extension
48
+ fi
49
+ }
50
+
51
+ # Function to add oci extension oci8 and pdo_oci.
52
+ add_oci() {
53
+ ext=$1
54
+ status='Enabled'
55
+ oracle_home='/opt/oracle'
56
+ oracle_client=$oracle_home/instantclient
57
+ os=$(uname -s)
58
+ add_client >/dev/null 2>&1
59
+ add_oci_helper >/dev/null 2>&1
60
+ add_extension_log "$ext" "$status"
61
+ check_extension "$ext" && add_license_log
62
+ }
63
+
64
+ # shellcheck source=.
65
+ . "${scripts:?}"/extensions/patches/phpize.sh
@@ -1,11 +1,11 @@
1
- patch_firebird() {
2
- if [[ "${version:?}" =~ ${old_versions:?} ]]; then
3
- sudo sed -i '' '/PHP_CHECK_PDO_INCLUDES/d' config.m4 2>/dev/null || sudo sed -i '/PHP_CHECK_PDO_INCLUDES/d' config.m4
4
- fi
5
- lib_arch=$(gcc -dumpmachine)
6
- lib_dir=/usr/lib/"$lib_arch"
7
- if [ -d "$lib_dir" ]; then
8
- sudo ln -sf "$lib_dir"/libfbclient.so.2 /usr/lib/libfbclient.so
9
- sudo ln -sf "$lib_dir"/libib_util.so /usr/lib/
10
- fi
11
- }
1
+ patch_firebird() {
2
+ if [[ "${version:?}" =~ ${old_versions:?} ]]; then
3
+ sudo sed -i '' '/PHP_CHECK_PDO_INCLUDES/d' config.m4 2>/dev/null || sudo sed -i '/PHP_CHECK_PDO_INCLUDES/d' config.m4
4
+ fi
5
+ lib_arch=$(gcc -dumpmachine)
6
+ lib_dir=/usr/lib/"$lib_arch"
7
+ if [ -d "$lib_dir" ]; then
8
+ sudo ln -sf "$lib_dir"/libfbclient.so.2 /usr/lib/libfbclient.so
9
+ sudo ln -sf "$lib_dir"/libib_util.so /usr/lib/
10
+ fi
11
+ }
@@ -1,7 +1,7 @@
1
- patch_geos() {
2
- if [ "$(php -r "echo PHP_VERSION_ID;")" -ge 70000 ]; then
3
- sed -i~ -e "s/, ce->name/, ZSTR_VAL(ce->name)/; s/ulong /zend_ulong /" geos.c
4
- fi
5
- get -q -n /tmp/php8.patch https://git.remirepo.net/cgit/rpms/php/php-geos.git/plain/0003-add-all-arginfo-and-fix-build-with-PHP-8.patch
6
- patch -p1 < /tmp/php8.patch 2>/dev/null || true
7
- }
1
+ patch_geos() {
2
+ if [ "$(php -r "echo PHP_VERSION_ID;")" -ge 70000 ]; then
3
+ sed -i~ -e "s/, ce->name/, ZSTR_VAL(ce->name)/; s/ulong /zend_ulong /" geos.c
4
+ fi
5
+ get -q -n /tmp/php8.patch https://git.remirepo.net/cgit/rpms/php/php-geos.git/plain/0003-add-all-arginfo-and-fix-build-with-PHP-8.patch
6
+ patch -p1 < /tmp/php8.patch 2>/dev/null || true
7
+ }
@@ -1,11 +1,11 @@
1
- patch_pecl_http() {
2
- if [ "$(uname -s)" = 'Darwin' ] && ! [[ ${version:?} =~ ${old_versions:?} ]]; then
3
- if [[ ${version:?} =~ 5.6|7.[0-4] ]]; then
4
- sed -i '' -e "s|ext/propro|$(brew --prefix propro@"${version:?}")/include/php/ext/propro@${version:?}|" "./src/php_http_api.h"
5
- fi
6
- sed -i '' -e "s|ext/raphf|$(brew --prefix raphf@"${version:?}")/include/php/ext/raphf@${version:?}|" "./src/php_http_api.h"
7
- if [ "${version:?}" = "5.6" ]; then
8
- sed -i '' -e "s|\$abs_srcdir|\$abs_srcdir ${brew_prefix:?}/include|" -e "s|/ext/propro|/php/ext/propro@5.6|" -e "s|/ext/raphf|/php/ext/raphf@5.6|" "./config9.m4"
9
- fi
10
- fi
11
- }
1
+ patch_pecl_http() {
2
+ if [ "$(uname -s)" = 'Darwin' ] && ! [[ ${version:?} =~ ${old_versions:?} ]]; then
3
+ if [[ ${version:?} =~ 5.6|7.[0-4] ]]; then
4
+ sed -i '' -e "s|ext/propro|$(brew --prefix propro@"${version:?}")/include/php/ext/propro@${version:?}|" "./src/php_http_api.h"
5
+ fi
6
+ sed -i '' -e "s|ext/raphf|$(brew --prefix raphf@"${version:?}")/include/php/ext/raphf@${version:?}|" "./src/php_http_api.h"
7
+ if [ "${version:?}" = "5.6" ]; then
8
+ sed -i '' -e "s|\$abs_srcdir|\$abs_srcdir ${brew_prefix:?}/include|" -e "s|/ext/propro|/php/ext/propro@5.6|" -e "s|/ext/raphf|/php/ext/raphf@5.6|" "./config9.m4"
9
+ fi
10
+ fi
11
+ }
@@ -1,6 +1,6 @@
1
- patch_pdo_oci() {
2
- get -q -n config.m4 https://raw.githubusercontent.com/php/php-src/PHP-8.0/ext/pdo_oci/config.m4
3
- if [[ ${version:?} =~ 5.[3-6] ]]; then
4
- sudo sed -i '' "/PHP_CHECK_PDO_INCLUDES/d" config.m4 2>/dev/null || sudo sed -i "/PHP_CHECK_PDO_INCLUDES/d" config.m4
5
- fi
6
- }
1
+ patch_pdo_oci() {
2
+ get -q -n config.m4 https://raw.githubusercontent.com/php/php-src/PHP-8.0/ext/pdo_oci/config.m4
3
+ if [[ ${version:?} =~ 5.[3-6] ]]; then
4
+ sudo sed -i '' "/PHP_CHECK_PDO_INCLUDES/d" config.m4 2>/dev/null || sudo sed -i "/PHP_CHECK_PDO_INCLUDES/d" config.m4
5
+ fi
6
+ }
@@ -1,26 +1,26 @@
1
- # Function to get phpize location on darwin.
2
- get_phpize() {
3
- if [[ "${version:?}" =~ 5.[3-5] ]]; then
4
- echo '/opt/local/bin/phpize'
5
- else
6
- echo "/usr/local/bin/$(readlink /usr/local/bin/phpize)"
7
- fi
8
- }
9
-
10
- # Function to patch phpize to link to php headers on darwin.
11
- patch_phpize() {
12
- if [ "$(uname -s)" = "Darwin" ]; then
13
- sudo cp "$phpize_orig" "$phpize_orig.bck"
14
- sudo sed -i '' 's~includedir=.*~includedir="$(xcrun --show-sdk-path)/usr/include/php"~g' "$phpize_orig"
15
- fi
16
- }
17
-
18
- # Function to restore phpize.
19
- restore_phpize() {
20
- if [ "$os" = "Darwin" ]; then
21
- sudo mv "$phpize_orig.bck" "$phpize_orig" || true
22
- fi
23
- }
24
-
25
- os="$(uname -s)"
26
- phpize_orig="$(get_phpize)"
1
+ # Function to get phpize location on darwin.
2
+ get_phpize() {
3
+ if [[ "${version:?}" =~ 5.[3-5] ]]; then
4
+ echo '/opt/local/bin/phpize'
5
+ else
6
+ echo "/usr/local/bin/$(readlink /usr/local/bin/phpize)"
7
+ fi
8
+ }
9
+
10
+ # Function to patch phpize to link to php headers on darwin.
11
+ patch_phpize() {
12
+ if [ "$(uname -s)" = "Darwin" ]; then
13
+ sudo cp "$phpize_orig" "$phpize_orig.bck"
14
+ sudo sed -i '' 's~includedir=.*~includedir="$(xcrun --show-sdk-path)/usr/include/php"~g' "$phpize_orig"
15
+ fi
16
+ }
17
+
18
+ # Function to restore phpize.
19
+ restore_phpize() {
20
+ if [ "$os" = "Darwin" ]; then
21
+ sudo mv "$phpize_orig.bck" "$phpize_orig" || true
22
+ fi
23
+ }
24
+
25
+ os="$(uname -s)"
26
+ phpize_orig="$(get_phpize)"
@@ -1,4 +1,4 @@
1
- patch_protobuf() {
2
- mkdir -p third_party/wyhash
3
- cp ../../../../third_party/wyhash/* third_party/wyhash
4
- }
1
+ patch_protobuf() {
2
+ mkdir -p third_party/wyhash
3
+ cp ../../../../third_party/wyhash/* third_party/wyhash
4
+ }
@@ -1,54 +1,54 @@
1
- # Function to install phalcon
2
- Function Add-PhalconHelper() {
3
- if ($extension_version -eq '4') {
4
- Install-Phpextension -Extension phalcon -MinimumStability stable -Path $php_dir
5
- } else {
6
- $domain = 'https://github.com'
7
- $nts = if (!$installed.ThreadSafe) { "_nts" } else { "" }
8
- $match = Invoke-WebRequest -Uri "$domain/phalcon/cphalcon/releases/v3.4.5" | Select-String -Pattern "href=`"(.*phalcon_x64_.*_php${version}_${extension_version}.*[0-9]${nts}.zip)`""
9
- $zip_file = $match.Matches[0].Groups[1].Value
10
- Invoke-WebRequest -Uri $domain/$zip_file -OutFile $ENV:RUNNER_TOOL_CACHE\phalcon.zip > $null 2>&1
11
- Expand-Archive -Path $ENV:RUNNER_TOOL_CACHE\phalcon.zip -DestinationPath $ENV:RUNNER_TOOL_CACHE\phalcon -Force > $null 2>&1
12
- Copy-Item -Path "$ENV:RUNNER_TOOL_CACHE\phalcon\php_phalcon.dll" -Destination "$ext_dir\php_phalcon.dll"
13
- Enable-PhpExtension -Extension phalcon -Path $php_dir
14
- }
15
- }
16
-
17
- Function Add-Phalcon() {
18
- Param (
19
- [Parameter(Position = 0, Mandatory = $true)]
20
- [ValidateNotNull()]
21
- [ValidateSet('phalcon3', 'phalcon4')]
22
- [string]
23
- $extension
24
- )
25
- try {
26
- $status = 'Enabled'
27
- $extension_version = $extension.substring($extension.Length - 1)
28
-
29
- if($extension_version -eq '4') {
30
- if (Test-Path $ext_dir\php_psr.dll) {
31
- Enable-PhpExtension -Extension psr -Path $php_dir
32
- } else {
33
- Install-Phpextension -Extension psr -MinimumStability stable -Path $php_dir
34
- }
35
- }
36
-
37
- if(Test-Path $ext_dir\php_phalcon.dll) {
38
- $phalcon = Get-PhpExtension $ext_dir\php_phalcon.dll
39
- if($phalcon.Version[0] -eq $extension_version) {
40
- Enable-PhpExtension -Extension phalcon -Path $php_dir
41
- } else {
42
- $status = 'Installed and enabled'
43
- Remove-Item $ext_dir\php_phalcon.dll
44
- Add-PhalconHelper
45
- }
46
- } else {
47
- $status = 'Installed and enabled'
48
- Add-PhalconHelper
49
- }
50
- Add-Log $tick $extension $status
51
- } catch [Exception] {
52
- Add-Log $cross $extension "Could not install $extension on PHP $($installed.FullVersion)"
53
- }
54
- }
1
+ # Function to install phalcon
2
+ Function Add-PhalconHelper() {
3
+ if ($extension_version -eq '4') {
4
+ Install-Phpextension -Extension phalcon -MinimumStability stable -Path $php_dir
5
+ } else {
6
+ $domain = 'https://github.com'
7
+ $nts = if (!$installed.ThreadSafe) { "_nts" } else { "" }
8
+ $match = Invoke-WebRequest -Uri "$domain/phalcon/cphalcon/releases/v3.4.5" | Select-String -Pattern "href=`"(.*phalcon_x64_.*_php${version}_${extension_version}.*[0-9]${nts}.zip)`""
9
+ $zip_file = $match.Matches[0].Groups[1].Value
10
+ Invoke-WebRequest -Uri $domain/$zip_file -OutFile $ENV:RUNNER_TOOL_CACHE\phalcon.zip > $null 2>&1
11
+ Expand-Archive -Path $ENV:RUNNER_TOOL_CACHE\phalcon.zip -DestinationPath $ENV:RUNNER_TOOL_CACHE\phalcon -Force > $null 2>&1
12
+ Copy-Item -Path "$ENV:RUNNER_TOOL_CACHE\phalcon\php_phalcon.dll" -Destination "$ext_dir\php_phalcon.dll"
13
+ Enable-PhpExtension -Extension phalcon -Path $php_dir
14
+ }
15
+ }
16
+
17
+ Function Add-Phalcon() {
18
+ Param (
19
+ [Parameter(Position = 0, Mandatory = $true)]
20
+ [ValidateNotNull()]
21
+ [ValidateSet('phalcon3', 'phalcon4')]
22
+ [string]
23
+ $extension
24
+ )
25
+ try {
26
+ $status = 'Enabled'
27
+ $extension_version = $extension.substring($extension.Length - 1)
28
+
29
+ if($extension_version -eq '4') {
30
+ if (Test-Path $ext_dir\php_psr.dll) {
31
+ Enable-PhpExtension -Extension psr -Path $php_dir
32
+ } else {
33
+ Install-Phpextension -Extension psr -MinimumStability stable -Path $php_dir
34
+ }
35
+ }
36
+
37
+ if(Test-Path $ext_dir\php_phalcon.dll) {
38
+ $phalcon = Get-PhpExtension $ext_dir\php_phalcon.dll
39
+ if($phalcon.Version[0] -eq $extension_version) {
40
+ Enable-PhpExtension -Extension phalcon -Path $php_dir
41
+ } else {
42
+ $status = 'Installed and enabled'
43
+ Remove-Item $ext_dir\php_phalcon.dll
44
+ Add-PhalconHelper
45
+ }
46
+ } else {
47
+ $status = 'Installed and enabled'
48
+ Add-PhalconHelper
49
+ }
50
+ Add-Log $tick $extension $status
51
+ } catch [Exception] {
52
+ Add-Log $cross $extension "Could not install $extension on PHP $($installed.FullVersion)"
53
+ }
54
+ }
@@ -1,58 +1,58 @@
1
- # Helper function to add phalcon.
2
- add_phalcon_helper() {
3
- status='Installed and enabled'
4
- if [ "$extension" = "phalcon4" ]; then
5
- install_packages "php${version:?}-psr" "php${version:?}-$extension"
6
- else
7
- install_packages "php${version:?}-$extension"
8
- fi
9
- }
10
-
11
- # Function to add phalcon3.
12
- add_phalcon3() {
13
- if [ -e "${ext_dir:?}/phalcon.so" ]; then
14
- phalcon_version=$(php -d="extension=phalcon.so" -r "echo phpversion('phalcon');" | cut -d'.' -f 1)
15
- if [ "$phalcon_version" != "$extension_major_version" ]; then
16
- add_phalcon_helper
17
- else
18
- echo "extension=phalcon.so" | sudo tee -a "$phalcon_ini_file"
19
- fi
20
- else
21
- add_phalcon_helper
22
- fi
23
- }
24
-
25
- # Function to add phalcon4.
26
- add_phalcon4() {
27
- if [ -e "${ext_dir:?}/psr.so" ] && ! php -m | grep -i -q -w psr; then
28
- echo "extension=psr.so" | sudo tee -a "${ini_file:?}"
29
- fi
30
- if [ -e "$ext_dir/phalcon.so" ]; then
31
- if php -m | grep -i -q -w psr; then
32
- phalcon_version=$(php -d="extension=phalcon" -r "echo phpversion('phalcon');" | cut -d'.' -f 1)
33
- if [ "$phalcon_version" != "$extension_major_version" ]; then
34
- add_phalcon_helper
35
- else
36
- echo "extension=phalcon.so" | sudo tee -a "$phalcon_ini_file"
37
- fi
38
- else
39
- add_phalcon_helper
40
- fi
41
- else
42
- add_phalcon_helper
43
- fi
44
- }
45
-
46
- # Function to add phalcon.
47
- add_phalcon() {
48
- extension=$1
49
- status='Enabled'
50
- phalcon_ini_file="${pecl_file:-${ini_file[@]}}"
51
- extension_major_version=${extension: -1}
52
- if [ "$extension_major_version" = "4" ]; then
53
- add_phalcon4 >/dev/null 2>&1
54
- elif [ "$extension_major_version" = "3" ]; then
55
- add_phalcon3 >/dev/null 2>&1
56
- fi
57
- add_extension_log "phalcon" "$status"
58
- }
1
+ # Helper function to add phalcon.
2
+ add_phalcon_helper() {
3
+ status='Installed and enabled'
4
+ if [ "$(uname -s)" = "Darwin" ]; then
5
+ add_brew_extension "$extension" extension
6
+ else
7
+ packages=("php${version:?}-$extension")
8
+ [ "$extension" = "phalcon4" ] && packages+=("php${version:?}-psr")
9
+ add_ppa ondrej/php >/dev/null 2>&1 || update_ppa ondrej/php
10
+ check_package "${packages[0]}" && install_packages "${packages[@]}"
11
+ fi
12
+ }
13
+
14
+ # Function to add phalcon3.
15
+ add_phalcon3() {
16
+ if shared_extension phalcon; then
17
+ phalcon_version=$(php -d="extension=phalcon.so" -r "echo phpversion('phalcon');" | cut -d'.' -f 1)
18
+ if [ "$phalcon_version" != "$extension_major_version" ]; then
19
+ add_phalcon_helper
20
+ else
21
+ enable_extension phalcon extension
22
+ fi
23
+ else
24
+ add_phalcon_helper
25
+ fi
26
+ }
27
+
28
+ # Function to add phalcon4.
29
+ add_phalcon4() {
30
+ enable_extension psr extension
31
+ if shared_extension phalcon; then
32
+ if check_extension psr; then
33
+ phalcon_version=$(php -d="extension=phalcon" -r "echo phpversion('phalcon');" | cut -d'.' -f 1)
34
+ if [ "$phalcon_version" != "$extension_major_version" ]; then
35
+ add_phalcon_helper
36
+ else
37
+ enable_extension phalcon extension
38
+ fi
39
+ else
40
+ add_phalcon_helper
41
+ fi
42
+ else
43
+ add_phalcon_helper
44
+ fi
45
+ }
46
+
47
+ # Function to add phalcon.
48
+ add_phalcon() {
49
+ extension=$1
50
+ status='Enabled'
51
+ extension_major_version=${extension: -1}
52
+ if [ "$extension_major_version" = "4" ]; then
53
+ add_phalcon4 >/dev/null 2>&1
54
+ elif [ "$extension_major_version" = "3" ]; then
55
+ add_phalcon3 >/dev/null 2>&1
56
+ fi
57
+ add_extension_log "phalcon" "$status"
58
+ }