基础命令
创建项目
composer create-project [包名] [目录] [版本号]
可以使用 Composer 从现有的包中创建一个新的项目,相当于 git clone 后同时安装这个包的依赖。
注意:这里是使用 Composer 包创建了一个项目,而不是引入了一个 Composer 包。
Laravel ThinkPHP 新建项目就是使用的这个。
此命令的用途如下:
- 可以快速部署你的应用
- 可以检出任何资源包,并开发它的补丁
- 多人开发项目,可以用它来加快应用初始化
参数说明
- 包名:要安装的项目包是什么,例如
topthink/think
、laravel/laravel
- 目录:项目文件夹,当文件夹不存在时会自动创建
- 版本号:如果不指定,则安装最新版本
--prefer-dist
:会从 github 上下载.zip压缩包,不保留 .git 文件夹,适合基于 package 开发,速度会更快。–prefer-source
:会直接 clone github 上的源代码,保留 .git 文件夹,如果 github 代码更新 可以通过 git pull 同步更新本地代码--no-install
: 禁止安装包依赖--no-scripts
: 禁止在跟资源包中定义脚本执行--no-plugins
禁用 plugins
例子:
# 安装 thinkphp 最新的发行版 到 tp 目录
composer create-project topthink/think tp
# 安装 thinkphp 6.0.* 开发板到 tp 目录
composer create-project topthink/think tp 6.0.*
# 安装 thinkphp 5.1.* 发行版到 tp 目录
composer create-project topthink/think tp 5.1.*
# 安装 laravel 最新的发行版 到 blog 目录
composer create-project --prefer-dist laravel/laravel blog
# 安装 laravel 6.x 版本到 到 blog 目录
composer create-project --prefer-dist laravel/laravel blog "6.*"
更新包
composer update [包名1] [包名2] [包名..]
参数说明
包名:
- 需要更新的包,多个包名使用空格分隔
- 也可以使用通配符来更新:
update vendor/*
- 如果不指定更新的包名则更新所有包
选项
--no-progress
: 不显示进度信息--no-scripts
:跳过composer.json
中的脚本。
注意:update 只是小版本的更新,用 ThinkPHP 举例,5.0.22 可以更新到 5.0.24,不会自动更新到 5.1.x。
如果需要跨版本更新包,则需要在
composer.json
文件中先修改到目标的版本号,然后执行包更新。
# 升级 tp 框架核心部分到最新版
composer update topthink/framework
安装包
composer install
install
命令从当前目录读取 composer.json
文件,处理了依赖关系,并把其安装到 vendor
目录下。
如果当前目录存在 composer.lock
文件,则会从此文件获取依赖版本,而不是 composer.json
。
如果没有 composer.lock
文件,则会在处理完依赖关系后创建它。
声明依赖
composer require [包名][:包版本]
新增依赖包到 composer.json
文件中。
参数说明
- 包名:需要添加的包,可以空格隔开多个包同时安装
- 包版本:指定安装包的版本,紧跟包名 ":" 分隔。
例子:
# 安装 dcat-admin 2.x 版本到项目
composer require dcat/laravel-admin:"2.*"
# 安装 dcat-admin 2.x 和 horizon 到项目
composer require laravel/horizon dcat/laravel-admin:"2.*"
全局执行
php composer.phar global [命令]
全局执行 composer 命令,需要将 $COMPOSER_HOME/vendor/bin
加入到 $PATH
命令。
参数说明
- 命令:可选的命令 install 、require、update
例子:
# 全局更新包
composer global update
# 全局安装包
composer global require fabpot/php-cs-fixer:dev-master
搜索包
composer search [包名]
参数:
–only-name
表示只输出包名
查看已安装包
composer show [包名] [包版本]
显示所有可用包,也可以用于查看一个包的详细信息
参数说明
- 包名:可选,不带包名则查看所有已安装包,带包名则显示包的详细信息
- 包版本:用于输出包指定版本的详细信息
选项:
--installed (-i)
列出已安装的依赖包--platform (-p)
仅列出平台软件包--self (-s)
仅列出当前项目信息
例子:
composer show thans/tp-jwt-auth
name : thans/tp-jwt-auth
descrip. : thinkphp jwt auth composer
keywords :
versions : * v1.1.3
type : library
license : MIT License (MIT) (OSI approved) https://spdx.org/licenses/MIT.html#licenseText
homepage :
source : [git] https://github.com/QThans/jwt-auth.git 9d7919c591e8c288320ccac1e9df8ae3b8a71c38
dist : [zip] https://api.github.com/repos/QThans/jwt-auth/zipball/9d7919c591e8c288320ccac1e9df8ae3b8a71c38 9d7919c591e8c288320ccac1e9df8ae3b8a71c38
path : [项目目录]\vendor\thans\tp-jwt-auth
names : thans/tp-jwt-auth
support
issues : https://github.com/QThans/jwt-auth/issues
source : https://github.com/QThans/jwt-auth/tree/v1.1.3
依赖检测
composer depends --link-type=require [包名]
用于检测项目中的某个包是否被其他包所依赖,并且列出它们。
选项
--link-type
默认为 require ,也可以是 require-dev
有效性检测
composer validate
用于检测项目中的 composer.json 是否有效
选项
--no-check-all
Composer 是否进行完整检测
依赖包状态检测
composer status
如果经常修改依赖包中的代码,并且他们是使用自定义源进行安装的,那么 status 命令允许你进行检查,如果本地有任何的更改,它都将会提示。
参数说明
-v
可以使用--verbose
系列的参数,来获取更加详细的信息
更新 Composer
composer self-update [版本]
将 Composer 自身升级为最新版本,执行后会将 composre.phar 自动替换到最新版本。
参数说明
- 版本:可选,如果不传则升级为最新版
--rollback (-r)
回滚到已经安装的最后一个版本-clean-backups
在升级过程中删掉旧的备份。
更改配置
config [options] [setting-key] [setting-value1] ... [setting-valueN]
Config 命令允许修改 Composer 的一些基础配置,无论是本地的 composer.json
还是全局的 config.json
文件。
参数
setting-key
配置项的名称setting-value1
配置项的值
选项
--global (-g)
表示操作的是全局 Composer 配置文件,如果不指定则修改当前项目的Composer.json
--editor (-e)
用文本编辑器打开composer.json
文件--unset
移除setting-key
指定的配置选项--list (-l)
显示当前配置选项的列表。--file="..." (-f)
在一个指定的文件上操作而不是 composer.json 注意,该选项与`--global
不能一起使用。
修改包来源
composer config repositories.foo vcs http://github.com/foo/bar
全局命令
--verbose (-v)
: 增加反馈信息的详细度。-v
表示正常输出。-vv
表示更详细的输出。-vvv
则是为了 debug。
--help (-h)
: 显示帮助信息。--quiet (-q)
: 禁止输出任何信息。--no-interaction (-n)
: 不要询问任何交互问题。--working-dir (-d)
: 如果指定的话,使用给定的目录作为工作目录。--profile
: 显示时间和内存使用信息。--ansi
: 强制 ANSI 输出。--no-ansi
: 关闭 ANSI 输出。--version (-V)
: 显示当前应用程序的版本信息。
其他问题
PHP 多版本
很多时候 会安装多个php版本,composer 默认使用的是环境变量中的php版本,但这样会导致部分项目需要低版本的 php支持,但安装的 composer 只支持高版本,这个时候可以使用 指定php版本的方案解决:
- 在项目目录 放置
composer.phar
文件(注意不是 php.exe 目录) - 在项目目录执行:
[指定版本的php] composer.phar install
方式执行 composer 命令
笔记内容来自 Composer 官方文档
CC版权: 本篇博文采用《CC 协议》,转载必须注明作者和本文链接