Composer使用 —— 常用命令和版本约束

常用命令

require命令

我们还可以使用require命令快速的安装一个依赖而不需要手动在composer.json里添加依赖信息。

$ composer require monolog/monolog

Composer会先找到合适的版本,然后更新composer.json文件,在require那添加monolog/monolog包的相关信息,再把相关的依赖下载下来进行安装,最后更新composer.lock文件并生成php的自动加载文件。

update命令

通过update命令,可以更新项目里所有的包,或者指定的某些包。

# 更新所有依赖
$ composer update
 
# 更新指定的包
$ composer update monolog/monolog
 
# 更新指定的多个包
$ composer update monolog/monolog symfony/dependency-injection
 
# 还可以通过通配符匹配包
$ composer update monolog/monolog symfony/*

需要注意的时,包能升级的版本会受到版本约束的约束,包不会升级到超出约束的版本的范围。例如如果composer.json里包的版本约束为^1.10,而最新版本为2.0。那么update命令是不能把包升级到2.0版本的,只能最高升级到1.x版本。关于版本约束请看后面的介绍。

remove命令

使用remove命令可以移除一个包及其依赖(在依赖没有被其他包使用的情况下):

$ composer remove monolog/monolog

search命令

使用search命令可以进行包的搜索:

$ composer search monolog

show命令

使用show命令可以列出项目目前所安装的包的信息:

# 列出所有已经安装的包
$ composer show
 
# 可以通过通配符进行筛选
$ composer show monolog/*
 
# 显示具体某个包的信息
$ composer show monolog/monolog

版本约束

前面说到,我们可以指定要下载的包的版本。例如我们想要下载版本1.19的monolog。我们可以通过composer.json文件:

{
    "require": {
        "monolog/monolog": "1.19"
    }
}

然后运行install命令,或者通过require命令达到目的:

$ composer require monolog/monolog:1.19
 
# 或者
$ composer require monolog/monolog=1.19
 
# 或者
$composer require monolog/monolog 1.19

基本约束

精确版本

可以指定具体的版本,告诉Composer只能安装这个版本。但是如果其他的依赖需要用到其他的版本,则包的安装或者更新最后会失败并终止。

例子:1.0.2

范围

使用比较操作符你可以指定包的范围。这些操作符包括:>>=<<=!=

通配符

可以使用通配符去定义版本。1.0.*相当于>=1.0 <1.1

波浪号~

~`操作符的用法:`~1.2`相当于`>=1.2 <2.0.0

版本稳定性

如果你没有显式的指定版本的稳定性,Composer会根据使用的操作符,默认在内部指定为-dev或者-stable

posted @ 2020-12-27 23:15  caibaotimes  阅读(305)  评论(0编辑  收藏  举报