Composer 2.4 的新特性
Composer,PHP事实上的依赖关系管理器。在即将发布的Composer 2.4版本中引入了几个新功能。它带来了新的命令,如audit和bump,支持在受支持的shell上完成shell,建议在适当的地方安装带有--dev标志的包,改进的进程信号处理等等。
与以前的次要版本Composer 2.3类似,Composer 2.4也需要PHP 7.2。使用较旧PHP版本的应用程序可能必须解决使用Composer 2.2,这是一个长期支持版本,以便于首先迁移到Composer 2.x。
新增composer bump命令
bump是Composer 2.4中引入的一个新命令,它通过将Composer.json文件中列出的包版本约束升级到约束允许的最新版本来“bump”。
composer bump使用新的版本号更新composer.json,但仅限允许的major/minor/patch范围内。例如,如果composer.json文件需要带有^9.4版本约束的phpunit/phpunit包,这意味着允许composer安装>=9.40>=和<10范围内的phpunit/phpunit版本。
{
"require": {
- "phpunit/phpunit": "^9.4"
+ "phpunit/phpunit": "^9.5.20"
}
}
Composer bump命令不会更新平台需求,例如PHP版本的扩展版本。
新增 composer audit命令
Composer 2.4添加了一个名为Composer audit的新命令,该命令可以扫描已安装的软件包以查找报告的安全漏洞。如果安装了任何具有已知安全漏洞的软件包,则存在错误代码。
默认情况下,报告的安全漏洞由Packagist获取。

自动扫描报告的安全漏洞
在Composer 2.4中,当安装、删除或更新新软件包时,Composer会自动扫描已安装的软件包以查找报告的漏洞。这基本上与在composer require、composer remove和composer update命令之后自动运行composer audit相同。
可以在 require 和 update 命令时通过传入 --no-audit 选项关闭 audit 功能:
composer require foo/bar --no-audit
composer update --no-audit
通过将值传递给新的--audit-format标志,还可以将audit的格式配置为summary、plain、table或json。--audit-format值为summary。
composer update --audit-format=table
注意 composer install 命令默认不启用 audit, 可以通过配置 --audit 选项启用:
composer install --audit --audit-format=plain
命令,包及选项的补全
Composer 2.4中扩展了命令补全的支持,以支持Composer命令、选项甚至包名称的补全。在内部,Composer的完成依赖于Symfony Console库。目前,支持仅限于Bash。
要配置Composer补全功能,请运行不带任何参数composer completion 命令。在支持的平台上,Composer打印一个completion脚本,该脚本在shell加载completion脚本的目录中。此设置还需要安装bash completion包:
Debian/Ubuntu 类似的系统
sudo apt install bash-completion
composer completion | tee /etc/bash_completion.d/composer
Fedora/RHEL
sudo dnf install bash-completion
composer completion | tee /etc/bash_completion.d/composer
Windows/MacOS
将composer completion命令的脚本输出添加到适当的位置(例如~/.bashrc加载的文件),当Bash初始化时,将在该位置加载 completion 脚本。