一,官方命令行:
https://docs.phpcomposer.com/03-cli.html
基本命令:
composer list 显示所有命令 composer show 显示所有包信息 composer install 在 composer.json 配置中添加依赖库之后运行此命令安装 composer create-project laravel/laravel Laravel –prefer-dist “5.1.*” 创建项目 composer search packagename 搜索包 composer update 更新所有包 composer update monolog/monolog 更新指定包 composer remove monolog/monolog 移除指定的包 composer require monolog/monolog 添加指定包 composer require monolog/monolog:1.19 添加指定包和版本 composer require monolog/monolog=1.19 composer require monolog/monolog 1.19
二,常用命令与场景说明:
1、composer list:获取帮助信息;
2、composer init:以交互方式填写composer.json文件信息;
3、composer install:如有 composer.lock 文件,直接安装,否则从 composer.json 安装最新扩展包和依赖;
4、composer update:获取依赖的最新版本,升级composer.lock文件;
PS:可以指定扩展包 composer update vendor/package
5、composer require:添加新的依赖包到composer.json文件中并执行更新;
PS:可以指定扩展包的版本 composer require "foo/bar:1.0.0" 这也是安装扩展扩展包的推荐的标准方法!
6、composer search:在当前项目中搜索依赖包;
7、composer show:列举所有可用的资源包;
8、composer validate:检测composer.json文件是否有效;
9、composer self-update:将composer工具更新到最新版本;
PS:更新 composer 本身,请经常执行 composer selfupdate 以保持 Composer 一直是最新版本。
10、composer create-project:基于composer创建一个新的项目;
11、composer dump-autoload:在添加新的类和目录映射是更新autoloader
PS:我们更改了 composer.json 文件中的 autoload 时,需要执行 composer dumpautoload,来让 autoload 立即生效。而不必执行 install 或 update 命令。
12、composer remove twbs/bootstrap :删除依赖后还需要去vender文件夹里,手动删除
PS:这只是删除了依赖关系,不会自动加载,但其依赖包还在vender文件夹里,可手动删除
13、composer config -gl: 查看全局设置
14、composer info: 查看已存在的包(需要在项目composer.json的目录里面使用)
15、设置composer镜像为国内镜像: composer config -g repo.packagist composer https://packagist.phpcomposer.com
上面地址前几天崩了,可以用下面这个: composer config -g repo.packagist composer https://mirrors.aliyun.com/composer
composer config -g repo.packagist composer https://packagist.composer-proxy.org (亲测有用)
composer config -g repo.packagist composer https://p.staticq.com
composer config -g repo.packagist composer https://packagist.phpcomposer.com
composer config repo.packagist composer https://packagist.laravel-china.org(报错)
16、composer clearcache:清理缓存
三、问题汇总
1、composer.lock 文件
里面保存着对每一个代码依赖的版本记录,提交到版本控制器中,并配合composer install 使用,保证了团队所有协作者开发环境、线上生产环境中运行的代码版本的一致性。
2、composer update 命令
composer update 的逻辑是按照 composer.json 指定的扩展包版本规则,把所有扩展包更新到最新版本,注意,是 所有扩展包,举个例子,你在项目一开始的时候使用了 monolog,当时的配置信息是
"monolog/monolog": "1.*"
安装的是 monolog 1.1 版本,而一个多月以后的现在,monolog 已经是 1.2 了,运行命令后直接更新到 1.2,这时项目并没有针对 1.2 进行过测试,项目一下子变得很不稳定,情况有时候会比这个更糟糕,尤其是在一个庞大的项目中,你没有对项目写完整覆盖测试的情况,什么东西坏掉了你都不知道。