基础命令展开目录
创建项目展开目录
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 hans p-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 命令


