composer 常用命令

Composer更换国内镜像

全局更换镜像:

   composer config -g repo.packagist composer https://packagist.phpcomposer.com 


仅当前项目更换镜像:在项目目录中执行

   composer config repo.packagist composer https://packagist.phpcomposer.com 


也可以修改项目中的composer.json文件:

"repositories": {
    "packagist": {
          "type": "composer",
          "url": "https://packagist.phpcomposer.com"
      }
  }

有时候运气不好,https://packagist.phpcomposer.com 站点维护不可用,那么可以尝试用Laravel China 维护的站点

将上面的地址换成下面地址即可

  https://packagist.laravel-china.org 

 

添加更新包

#更新所有依赖包, 并且升级composer.lock文件,如果vendor 没有composer.json文件中的包自动下载新的
composer update 
#如果你只是想更新几个包,你可以像这样分别列出它们
 composer update package package2 
#你还可以使用通配符进行批量更新
composer.phar update symfong/* 

# 添加指定包
composer require monolog/monolog 
# 添加指定包和版本,3中不同的方式
composer require monolog/monolog:1.19
composer require monolog/monolog=1.19
composer require monolog/monolog 1.19

#在 composer.json 配置中添加依赖库之后运行此命令安装,然后运行install命令
composer install packageName

compoesr 的require/update均可以更新指定的依赖包(升级/降级)

require更为灵活些,未安装则进行安装,已安装则根据传入的版本号进行升级或降级。

update则没法在命令行传入新的版本号,须要先手动在composer.json中指定新的版本号,而后执行更新命令。

install和update及其区别

你执行composer update的时候,composer会去读取composer.json中指定的依赖,去分析他们,并且去拉取符合条件最新版本的依赖。然后他会把所拉取到的依赖放入vendor目录下,并且把所有拉取的依赖的精确版本号写入composer.lock文件中。

composer install所执行的事情非常类似,只在第一步的时候有差别。当你本地如果已经存在一份composer.lock时,它将会去读取你的composer.lock而非composer.json,并且以此为标准去下载依赖。当你本地没有composer.lock的时候,它所做的事情和composer update其实并没有区别。

这意味着,只要你本地有一份composer.lock,你就可以保证无论过去了多久,你都能拉到相同的依赖。而如果你把它纳入你的项目的版本控制中,那么你就可以确保你项目中的每一个人、每一台电脑,不管什么系统,都能拉取到一模一样的依赖,以减少潜在的依赖对部署的影响。当然,请记得,你应该使用的命令是composer install。

那什么时候该使用composer update呢?当你修改了你的依赖关系,不管是新增了依赖,还是修改了依赖的版本,又或者是删除了依赖,这时候如果你执行composer install的时候,是不会有任何变更的,但你会得到一个警告信息  Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. Run update to update them. 

 

show列出已安装的包

# 列出所有已经安装的包
$ composer show

# 可以通过通配符进行筛选 
$ composer show monolog/*

# 显示具体某个包的信息
$ composer show monolog/monolog

 

search 搜索指定包

#搜索指定包
$ composer search monolog
# 如果只是想匹配名称可以使用--only-name选项
$ composer search --only-name monolog

 

remove 移除包  

  使用remove命令可以移除一个包及其依赖(在依赖没有被其他包使用的情况下):
   $ composer remove monolog/monolog 

  本人测试这个命令不起作用,可以 修改 composer.json 文件,去除   monolog/monolog (想要移除的项目),执行 composer update 即可

  

 

composer 创建项目

# 安装指定版本
php composer.phar create-project doctrine/orm path 2.2.*
# 安装指定版本,当有可用的包时,从 dist 安装。
composer create-project laravel/laravel Laravel –prefer-dist “5.1.*”

创建项目-参数
--repository-url: 提供一个自定义的储存库来搜索包,这将被用来代替 packagist.org。可以是一个指向 composer 资源库的 HTTP URL,或者是指向某个 packages.json 文件的本地路径。
--stability (-s): 资源包的最低稳定版本,默认为 stable。
--prefer-source: 当有可用的包时,从 source 安装。
--prefer-dist: 当有可用的包时,从 dist 安装。
--dev: 安装 require-dev 字段中列出的包。
--no-install: 禁止安装包的依赖。
--no-plugins: 禁用 plugins。
--no-scripts: 禁止在根资源包中定义的脚本执行。
--no-progress: 移除进度信息,这可以避免一些不处理换行的终端或脚本出现混乱的显示。
--keep-vcs: 创建时跳过缺失的 VCS 。如果你在非交互模式下运行创建命令,这将是非常有用的。

这相当于执行了一个 git clone 或 svn checkout 命令后将这个包的依赖安装到它自己的 vendor 目录。create-project 命令,传递一个包名,它会为你创建项目的目录。你也可以在第三个参数中指定版本号,否则将获取最新的版本。

 

composer 自身命令

# 查看当前配置
composer config -g
 
#回滚上一个版本
composer self-update -r 
 
#只更新自动加载而不去更新依赖
composer dump-autoload
 
#查看所有命令 
composer list 

#清除缓存 
composer clear-cache

 

相关文章  PHP 开发者该知道的 5 个 Composer 小技巧

     Packagist / Composer中国全量镜像

composer命令行

 

posted @ 2017-09-11 10:25  柔和的天空  阅读(1213)  评论(0编辑  收藏  举报