简介

在公司内部的开发过程中,总会有部分代码包不适合发布到公网上,为了避免每次在composer.json每次都指定代码包的仓库地址,需要自建composer私有仓库。
composer官方有提供两种方式:satis和toran proxy,satis相对来说简单些,以下的教程也是针对satis进行的。

官方文档

https://github.com/composer/satis

安装satis

composer create-project composer/satis:dev-master

配置satis

cd ~/satis
vim satis.json

添加内容如下:

{
  "name": "My Repository",
  "homepage": "http://packages.example.org",
  "repositories": [
    { "name": "tinson/formatter", "type": "vcs", "url": "https://github.com/hetiansu5/formatter" }
  ],
  "require-all": true
}

生成composer仓库元数据

mkdir web
php bin/satis build satis.json web/

启动Composer元数据服务

使用php内置的服务器启动一个简单的服务器,类似packagelist的服务。

php -S localhost:80 -t web/

将packages.example.org本地Host到127.0.0.1,可以通过http://packages.example.org/访问。如果80端口已经被占用,可监听其他端口,通过Nignx配置域名反向代理到本机的8090端口。

使用

在项目的composer.json中引入如下配置,就可以使用私有的仓库包了。

{
  "repositories": [{
    "type": "composer",
    "url": "http://packages.example.org"
  }]
}