上一篇文章我们聊了版本号以及它的一些注意事项,是不是有一丢丢小收获呢?这一篇我们来说说composer的一些常用的命令。
全局参数
全局参数虽然不是必要的,但是有时候可以帮助我们更好地了解并使用 composer:
# 查看composer的版本
> composer -V
# debug模式,输出详细的命令执行过程
> composer -vvv
# 取消交互模式( --no-interaction )
> composer init -n
# 终端不输出任何信息( --quiet )
> composer require vendor/package -n
从上面所列举的常用全局参数中可以发现一个规律:缩略形式使用"-",完整形式使用"--"。
require和install(增)
require和install都是用来安装依赖包的。 require通常用于安装指定的某一个依赖包,而 install通常用于刚从版本库克隆下来的项目它的依赖包初始化工作。
区别:前者不依赖composer.json文件,如果文件不存在则会自动创建。而后者必须依赖 composer.json文件或者 composer.lock文件,否则会报错!
此外, install命令的行为有一点需要注意:当存在 composer.lock文件时会以其中指定的依赖包及版本进行安装,当不存在时,则会根据 composer.json声明的依赖包及版本进行安装并生成 composer.lock文件。
# 安装指定依赖包
> composer require vendor/package
# 项目从github上拉取下来后,安装所有的依赖
> composer install
注: composer.lock 顾名思义,它的作用就是锁定,记录当前已经安装的包信息,保证多人开发项目版本的一致性。它将会省掉检查新版等很多工作,直接从文件里读取下载地址开始下载,会快很多。
remove(删)
用于删除指定的依赖包。该命令会更新 composer.json以及 composer.lock文件。
这里也有一个注意点:直接删除 vendor目录下面的包并不会更新 composer.lock文件,下次执行install命令仍旧会安装上。
#删除指定的依赖包
> composer remove vendor/package
update(改)
用于更新依赖包。主要有三种使用场景:
- 更新指定的依赖包
# 更新指定的依赖包
> composer update vendor/package
- 更新当前项目的所有依赖包
# 更新当前项目的所有依赖包
> composer update
- 修改了 composer.json文件并使其生效
# 修改了composer.json文件使其生效,同样会修改composer.lock文件
> composer update
search(查)
用于搜索依赖包。它其实就是 http://packagist.org 网站的搜索框功能:
默认是根据包名称、包描述等等关键字进行匹配,也可以做一些定制化处理:
# 只根据包名称匹配( --only-name )
> composer search -n laravel
# 只根据包的类型匹配( --type )
> composer search laravel -t project
create-project(初始化项目)
当我们用框架初始化项目时一般会用到这个命令,例如:我需要用laravel框架开发一个博客系统,前期项目初始化:
# 初始化项目
> composer create-project laravel/laravel blog
注: create 等价于 create-project,因为 composer 可以根据 create 唯一确定命令为create-project。实际上任何缩写只要与之对应的命令唯一,composer都是会执行的。
dump-autoload(自动加载)
当你修改了composer.json文件的autoload属性值时,为了使其生效你需要执行该命令:
# 自动加载
> composer dump-autoload
config(配置)
查看配置信息。例如:
# 查看当前项目的配置信息( --list )
> composer config -l
# 查看全局的配置信息( --global --list )
> composer config -g -l
注: 全局的配置信息在家目录的 .composer 文件夹下,名为 config.json 。
配置命令有一个比较常用的使用场景:切换全局镜像
# 切换全局镜像
> composer config -g repos.packagist composer https://mirrors.aliyun.com/composer/