PHP Composer
Notes
Dependency Manager for PHP
- Bumped
composer-runtime-apiandcomposer-plugin-apito2.1.0 - UX Change: The default install method for packages is now always dist/zip, even for dev packages, added
--prefer-install=autoif you want the old behavior (#9603) - UX Change: Packages from
pathrepositories which are symlinked in the vendor dir will always be updated in partial updates to avoid mistakes when the original composer.json changes but the symlinked package is not explicitly updated (#9765) - Added
reinstallcommand that takes one or more package names, including wildcard (*) support, and removes then reinstalls them in the exact same version they had (#9915) - Added support for parallel package installs on Windows via 7-Zip if it is installed (#9875)
- Added detection of invalid composer.lock files that do not fullfil the composer.json requirements to
validatecommand (#9899) - Added
InstalledVersions::getInstalledPackagesByType(string $type)to retrieve installed plugins for example, read more (#9699) - Added
InstalledVersions::getInstalledPath(string $packageName)to retrieve the install path of a given package, read more (#9699) - Added flag to
InstalledVersions::isInstalled()to allow excluding dev requirements from that check (#9682) - Added support for PHP 8.1 enums in autoloader / classmap generation (#9670)
- Added support for using
@php binary-name fooin scripts to refer to a binary without using its full path, but forcing to use the same PHP version as Composer used (#9726) - Added
--format=jsonsupport to thefundcommand (#9678) - Added
--format=jsonsupport to thesearchcommand (#9747) - Added
COMPOSER_DEV_MODEenv var definition within the run-script command for compatibility (#9793) - Added async uninstall of packages (#9618)
- Added color legend to
outdatedandshow --latestcommands (#9716) - Added
secure-svn-domainsconfig option to mark secure svn:// hostnames and suppress warnings without disabling secure-http (#9872) - Added
gitlab-protocolconfig option to allow forcinggitorhttpURLs for all gitlab repos loaded inline, instead of the default of git for private and http for public (#9401) - Added generation of autoload rules in
initcommand (#9829) - Added source/dist validation in
validatecommand - Added automatic detection of WSL when generating binaries and use
bin-compat:fullimplicitly (#9855) - Added automatic detection of the --no-dev state for
dump-autoloadbased on the last install run (#9714) - Added warning/prompt to
requirecommand if requiring a package that already exists in require-dev or vice versa (#9542) - Added information about package conflicts in the
why/why-notcommands (#9693) - Removed version argument from
whycommand as it was not needed (#9729) - Fixed
why-notcommand to always require a specific version as it is useless without (#9729) - Fixed cache dir on macOS to follow OS guidelines, it is now in ~/Library/Caches/composer (#9898)
- Fixed composer.json JSON schema to avoid having name/description required by default (#9912)
- Fixed support for running inside WSL paths from a Windows PHP/Composer (#9861)
- Fixed InstalledVersions to include the original doc blocks when installed from a Composer phar file
- Fixed
requirecommand to use*as constraint for extensions bundled with PHP instead of duplicating the PHP constraint (#9483) - Fixed
searchoutput to be aligned and avoid wrapped long lines to be more readable (#9455) - Fixed PHP 8.1 deprecation warning (#9932)
- Fixed env var handling when variables_order includes E and symfony/console 3.3.15+ is in use (#9930)
- Error output improvements for many cases (#9876, #9837, #9928, and some smaller improvements)