composer基本操作
安装
参考:https://pkg.phpcomposer.com/#how-to-install-compose
//windows和linux通用方法 #下载 php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');" #生成:composer.phar php composer-setup.php 如果是局部暗装,已经可以使用php composer.phar 代替composer了 //windows全局 #在 PHP 安装目录下新建一个 composer.bat 文件,内容为: @php "%~dp0composer.phar" %* #把composer.phar也放在php安装目录下 //linux全局 sudo mv composer.phar /usr/local/bin/composer
#或者一条命令
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
镜像配置
设置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(报错) composer clearcache:清理缓存
官方命令行:
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的目录里面使用)
问题汇总
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 进行过测试,项目一下子变得很不稳定,情况有时候会比这个更糟糕,尤其是在一个庞大的项目中,你没有对项目写完整覆盖测试的情况,什么东西坏掉了你都不知道。
3、开发和发布composer包
https://www.jianshu.com/p/ecb9df55e003 (发布)
https://blog.csdn.net/m_nanle_xiaobudiu/article/details/104231469 (自动更新)