This release is possible because of our sponsors ❤️.
Help setup-php reach its sponsorship goals.
- Added
ini-file
input to specify the basephp.ini
file. Acceptsproduction
,development
ornone
. Docs (#450, #469)
By default the production php.ini
is used, you can change it to the development
one, or remove it using none
.
- name: Setup PHP
with:
php-version: '8.1'
ini-file: development
- Updated support for
symfony-cli
to use the new version fromsymfony-cli/symfony-cli
.
- name: Setup PHP
with:
php-version: '8.1'
tools: symfony-cli
- name: Setup PHP
with:
php-version: '8.1'
tools: churn
- Added support for
blackfire
extension on PHP 8.1.
- name: Setup PHP
with:
php-version: '8.1'
extensions: blackfire
-
Tools
pecl
,phpize
andphp-config
are now installed by default on Linux. Specifying these intools
input is no longer required. -
The environment variable
COMPOSER_NO_INTERACTION
is now set to1
by default, so using--no-interaction
in composer commands is not required. (#547) -
The environment is now considered self-hosted unless the GitHub hosted environment is detected. This should prevent broken PHP installs in self-hosted environments when the
runner
environment variable is not specified. (#554) -
Added support to enable disabled extensions when required by tools. For this extensions are now processed before tools.
-
Added support to enable
xml
extension before installing other extensions usingpecl
. (#553) -
Speed improvements
- Reduced the initial I/O in script creation.
- Reduced the number of PHP calls and it now uses
php-config
instead. - Reduced number of
brew
calls on macOS setup. - Windows builds for all PHP versions are now fetched from
shivammathur/php-builder-windows
releases as a faster cache withwindows.php.net
as a fallback. - SSL libraries for PHP 5.3 to 5.5 on Windows are now fetched in parallel.
- PHP builds for PHP 5.3 to 5.5 should now use cached
macports
builds fromshivammathur/php5-darwin
.
-
Added support for installing tools using composer in different scopes. This allows installing two tools with different versions of a common dependency. (#549)
-
Added support to fail immediately when composer setup fails. (#548)
-
Added support to parse PECL extension versions when wrongly hyphenated. (#536)
-
Added support for composer phars from shivammathur/composer-cache with PHP version as now different PHP versions can have different composer versions for a release type.
-
Added
setup-php.com
as a fallback in addition tojsdeliver.com
for script sources. -
Fixed support for fallback sources for tools in Windows.
-
Fixed potential exponential backtracking in regex to parse extension input when installing extensions from a git repository.
-
Fixed adding
sudo
to self-hosted Linux environments. (#555) -
Fixed enabling disabled extensions with other extensions as dependencies. For example
pecl_http
,redis
, etc. -
Fixed a bug where the ini file used for enabling extensions by
pecl
in the scan directory was deleted when disabling extensions. -
Fixed misconfiguration which prevented package lists from updating on Linux.
-
Fixed the fallback to install PowerShell packages using
Install-Module
on Windows when GitHub Releases is down. Also fixed not adding the Import-Module command to the profile when it fallbacks. -
Fixed tools setup to not overwrite an existing tool with a broken one if it fails to set up.
-
Fixed an error when copying tools to a directory in PATH in tools setup.
-
Fixed parsing composer phars from snapshot channel for its version when is a stable version.
-
Fixed support for
oci8
andpdo_oci
extensions on Windows. -
Fixed
pecl_http
setup. -
Fixed
restore-keys
input in composer cache example inREADME
with dependency range. -
Fixed error in tools setup on self-hosted environments when composer's bin directory is not present.
-
Fixed
tools.getLatestVersion
to handle failing GitHub API call. -
Fixed output on non-GitHub Action environments where GitHub Action specific command syntax was printed.
-
Fixed a bug where the status variable was overwritten in
ppa.sh
and was breaking the status output. -
Fixed scope of variables to local in bash scripts.
-
Fixed setting extension stability in
Add-Extension
Function on Windows. -
Fixed
node-release
workflow to add lib directory to the packages. -
Fixed sending coverage data to
codecov
on pull requests. -
Refactored
utils.fetch
to its own module and mocked thehttp
module usingnock
for fetch tests. Now the Node.js test suite does not make any external requests. -
Refactored setting environment variables and adding to PATH.
-
Refactored setting outputs to functions with a check to only run on GitHub Actions.
-
Refactored extension functions to
add_extension.sh
andadd_extension.ps1
. -
Refactored the default PHP packages for self-hosted Linux environments to a config file. Also added
cgi
,fpm
,mysql
,opcache
,pgsql
andzip
to the list. -
Refactored Nightly PHP setup to
Install-PhpNightly
Function on Windows. -
Refactored CI workflows and templates.
-
Rename
common.sh
tounix.sh
. -
Update security policy to specify clearly that the latest patch versions of both
v1
andv2
are supported for security updates. -
Updated Node workflows to use
16.x
. -
Updated README for the release.
-
Updated Node.js dependencies.
Thanks! @jrfnl and @villfa for the contributions 🚀