搭建私有composer


  适用于公司内部进行包管理,在组件化、服务化场景下部分业务代码不方便放到开源平台,可使用内部git服务器,配合composer/satis项目搭建私有composer处理内部依赖,优化代码结构,统一依赖


环境

  • 系统​:​​windows 10​
  • php版本​:​​7.2.17​​​(当前satis要求​​^7.2.9​​)
  • git服务​:​​gitlab​
  • 示例项目​:​​aichenk/open-crypt​

步骤

  • 提交项目源码到gitlab

  • 需配置composer.json,步骤本次不作说明
  • 需可以通过http方式访问(gitlab本身支持)
  • 使用composer建立satis项目并加载依赖

    $ composer create-project composer/satis satis --stability=dev --keep-vcs
    $ cd satis
    $ composer install
  • 增加配置文件satis.json(本次建立在项目根目录,可以自由配置)

    {
    "name": "satis",
    "homepage": "http://localhost:8080/",
    "repositories": [
    {
    "type": "vcs",
    "url": "http://localhost/aichenk/open-crypt.git"
    }
    ],
    "config": {
    "secure-http": false
    }
    }
  • ​homepage​​表示satis访问地址(web服务器配置,后续用到)
  • ​repositories​​中写入git仓库地址
  • ​secure-http:false​​表示支持http访问
  • 生成仓库列表及网页文件

    $ php bin/satis build satis.json ./web
  • 配置web访问(本示例使用php自带web服务演示)

    $ php -S 0.0.0.0:8080 -t ./web
  • 打开配置的​​homepage​​验证是否成功

    搭建私有Composer_git

使用

  • 修改项目composer.json文件

    {
    "repositories": {
    "packagist": {
    "type": "composer",
    "url": "http://localhost:8080/"
    }
    },
    "config": {
    "secure-http": false
    },
    "require": {
    "aichenk/open-crypt": "^1.0"
    }
    }
  • 执行​​composer install​​即可

其他说明

  • 项目中添加多个composer源

    {
    "repositories": [
    {
    "type": "composer",
    "url": "http://localhost:8080"
    },
    {
    "type": "composer",
    "url": "https://packagist.phpcomposer.com"
    }
    ]
    }
  • 略过satis直接使用gitlab加载包

    {
    "repositories": [
    {
    "type": "vcs",
    "url": "http://localhost/aichenk/open-crypt.git"
    },
    {
    "type": "composer",
    "url": "https://packagist.phpcomposer.com"
    }
    ]
    }