美文网首页
私有Composer搭建

私有Composer搭建

作者: PurelightMe | 来源:发表于2020-08-05 23:07 被阅读0次

缘由

在PHP项目的开发中,我们经常会引用一些第三方的依赖,也就是 composer package ,当我们在项目里面运行 composer require

的时候,默认地,composer 会从 github,packagist,等等其他仓库下载我们的依赖项,这大概率是一个耗时操作,从10多秒到十多分钟的都有,有的甚至都下载不下来。

为了解决这一问题,同时也解决公司内部使用的代码不想开源出去等需求,私有composer仓库就出现了,官方推出的 satis 完美实现了这一目的。

搭建

现在本地创建一个 satis 项目:

composer create-project composer/satis

创建完成之后,在项目根目录下面建一个 satis.json 文件,该文件是整个 satis 项目的核心配置,主要描述了仓库的名称,地址,以及package信息,实例:

{
  "name": "Purelightme Composer Repositories",
  "homepage": "http://satis.com",
  "repositories": [
    {
      "type": "vcs",
      "url": "https://github.com/Purelightme/reco4life"
    }
  ],
  "require": {
    "purelightme/reco4life": "*"
  },
  "archive": {
      "directory": "dist",
      "format": "zip"
  },
  "require-dependencies": true
}

具体参数含义可参考:https://getcomposer.org/doc/articles/handling-private-packages-with-satis.md 这里面有关于该配置文件的详细描述。

构建

构建的目的是将配置文件里面定义的 package 按照定义的方式拉到本地来。命令:

php -d memory_limit=1000M bin/satis build ./satis.json public

在运行构建过程中,我一共遇到2个问题,一个是报错,Class not found 啥来着,composer update 后解决了;再就是内存不足的问题,直接加上 -d 参数设置就行了。

如果设置了 archive 参数,构建过程将生成 public 目录,里面存放着我们定义的 package ,还有个 dist 目录,压缩的版本,composer require 的时候可以加速。

开启服务

要让我们的 Composer 仓库运行起来,我们要做的仅仅是建一个web服务,指向public目录即可。nginx示例:

server {
    listen       80;
    server_name  satis.com;

    access_log  /var/log/nginx/purelight.me.access.log  main;
    error_log /var/log/nginx/satis.com.error.log;
    root   /var/www/html/satis/public;

    location / {
        index  index.html index.php;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

    location ~ \.php$ {
        fastcgi_pass   fpm;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

访问本地 http://satis.com

16.1.png

大概就长这样,要使用该仓库,只需在项目里面的 composer.json 文件里面定义我们的仓库:

{
    "repositories":[
        {
            "type":"composer",
            "url":"http://satis.com"
        }
    ],
    "config":{
        "secure-http": false //这一行是允许http下载,否则下载不了,要https
    }
}

测试一下

steps:

  • 新建test目录,composer init 一路回车。
  • composer require purelightme/reco4life -vvv(查看详细信息,观察是否是从satis.com下载的)

结果:


16.2.png

可以看到是从satis.com下载的。

总结

该工具主要是加速下载过程,适合公司内部使用,提高代码复用,拒绝到处copy,拒绝vendor入版本控制,积累成果,体验飞一般的感觉。

相关文章

  • satis搭建composer包仓库

    本文主要包含几个部分Composer仓库讲述为什么要搭建私有的Composer仓库如何开发composer包sat...

  • 搭建私有composer

      适用于公司内部进行包管理,在组件化、服务化场景下部分业务代码不方便放到开源平台,可使用内部git服务器,配合c...

  • 使用 Satis 搭建私有的 Composer 包仓库

    简述 iBrand 产品立项时是商业性质的项目,但是在搭建架构时考虑后续的通用性,因此每个模块都设计成一个 Pac...

  • 私有npm服务器搭建

    私有npm服务器搭建 标签(空格分隔): Node.js 私有npm服务器搭建 本次搭建是在ubuntu环境下搭建...

  • 搭建私有npm服务器教程

    私有npm服务器搭建 标签(空格分隔): Node.js 私有npm服务器搭建 本次搭建是在ubuntu环境下搭建...

  • 【Yii2框架学习】框架搭建

    Windows下搭建 1、安装Composer [windows安装] Composer 是 PHP 的一个依赖管...

  • maven备忘

    1. 搭建私有库 使用docker搭建私有maven库,docker image为sonatype/nexus3 ...

  • 搭建服务器

    服务器搭建手册 Nginx 安装 php 安装 MySQL安装 安装composer管理工具 composer 切...

  • 私有npm库搭建 & Vue npm组件发布

    一、私有库搭建 本文私有库在linux中使用docker搭建 拉最新镜像docker pull verdaccio...

  • 以太坊开发(2):在以太坊私有链上的基本操作

    在上一讲如何使用geth搭建以太坊私有链完成了私有链的搭建,下面介绍在私有链上的基本操作。 创建账户 启动私有链后...

网友评论

      本文标题:私有Composer搭建

      本文链接:https://www.haomeiwen.com/subject/hckxdktx.html