composer是PHP的包管理、包依赖关系管理工具,有了它,我们就很轻松一个命令就可以把他人优秀的代码用到我们的项目中来,而且很容易管理依赖关系,更新删除等操作也很轻易的实现。

1 显示可用命令

composer
composer list

2 查看当前镜像源

composer config -l -g

[repositories.packagist.org.type] composer

[repositories.packagist.org.url] https://packagist.org

# 或者
composer config -g repo

{"packagist.org":{"type":"composer","url":"https://packagist.org"}}

3 配置镜像源

# 删除镜像
composer config -g --unset repos.packagist

# 全局配置国内镜像
composer config -g repo.packagist composer https://packagist.phpcomposer.com

# 全局恢复默认镜像
composer config -g repo.packagist composer https://packagist.org

# 单项目配置镜像
# 编辑composer.json文件,配置
"repositories": {
	"packagist": {
        "type": "composer",
        "url": "https://packagist.phpcomposer.com"
        // "url": "https://packagist.org"
	}
}
# 单项目命令行配置
composer config repo.packagist composer https://packagist.phpcomposer.com

4 安装依赖

composer install xxxxx/xxxx

5 更新单个依赖

composer update xxxxx/xxxx
# 或者
composer require xxx:version

6 根据包的名称,列出包的相关信息

composer show -all xxxx

7 搜索相关包的信息

composer search monolog

8 创建 composer.json 文件

composer init

例如下面生成的composer.json文件

{
  "name": "xxx/xxx",
  "type": "",
  "description": "",
  "license" : "Apache-2.0",
  "authors": [
    {
      "name": "xmlwch",
      "email": "xmlwch@126.com"
    }
  ],
  "require": {
    "php": ">=7.1.0",
    "ext-json": "*"
  },
  "require-dev": {
  },
  "autoload": {
    "psr-4": {
    }
  }
}

9 检查

composer diagnose

10 更新composer

composer self-update

11 清空缓存

composer clear-cache

12 配置相关项

composer config …
# 配置所有的配置项,例如:
composer config secure-http true(false)

13 优化自动加载

composer dump-autoload -optimize

14 json与lock文件

composer.json 与 composer.lock 文件是composer工具依赖的两个文件,能轻松实现扩展的引入和环境的一致性,一般通过composer init 初始

composer.json文件,在配置相关项后,通过composer install 进行安装生成composer.lock文件(如果有,则根据lock文件内容进行安装,否则根据json文件安装并生成lock文件,lock文件能很好的保证多人在安装项目时环境配置的一致性)

参考文档

https://www.phpcomposer.com/

https://pkg.phpcomposer.com/

由于时间仓促,错误与疏忽之处在所难免,希望各位朋友们以邮件的形式反馈问题给我,再次表示感谢!