编程

Composer 2.4 的新特性

703 2022-11-24 18:38:22

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 `audit` command output

自动扫描报告的安全漏洞

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

 

PHP