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
。