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 脚本。