Composer 私有仓库搭建

Satis 原理:通过配置文件生成相关库的元数据提供给composer,先通过git 下载 satis 代码库,创建一个 json 配置文件如下示例
复制代码
{
    "name": "longxiangam/repository",                  // Satis 生成的仓库的"名称",显示在 packages.json 中,通常是"我的私有仓库"这种描述性名字
    "homepage": "http://composer.test",                // Satis 生成的静态仓库首页 URL(浏览器访问这个地址能看到 packages.json 和搜索界面)

    "repositories": [                                  // 指定要扫描/镜像的源仓库(可以是 git、vcs、path 等类型)
        {
            "type": "git",
            "url": "https://github.com/longxiangam/dingtalk.git"
        }
    ],

    "require-all": false,                              // 关键字段:false → 不镜像"repositories"里所有包的所有版本
                                                       // 如果 true → 会镜像 repositories 里所有包的所有 commit/branch/tag 版本(非常多,适合全镜像场景)

    "require": {                                       // 关键字段:显式指定要镜像哪些包(Composer 的 require 语法)
        "mingyoung/dingtalk": "*"                      // 只镜像这个包的所有版本(* 表示任意版本,包括所有 tag/branch)
    },

    "require-dependencies": false,                     // 是否自动镜像"require"里包的依赖(dependencies)
                                                       // false → 不镜像依赖,只镜像 mingyoung/dingtalk 本身
                                                       // true → 会递归镜像它的依赖(如它依赖 guzzlehttp/guzzle,则也会镜像 guzzle)

    "require-dev-dependencies": false                  // 是否镜像 dev-dependencies(require-dev 里的包,如测试工具 phpunit)
                                                       // 通常设为 false,除非你想在私有仓库里也提供测试依赖
}

124747a2-8e29-4c04-99b1-209eb8a629cf

再通过命令构建出用于web发布的静态文件,命令如下, 最后两个指定配置与输出目录,构建出dist 后用nginx 发布成一个服务能够访问即可

复制代码
php bin/satis build satis.json dist

在composer.json 中配置私有库

复制代码
{
"repositories": [
        {
            "type": "composer",
            "url": "http://composer.test"   
        }
    ]

}

提示 如下时

复制代码
Your configuration does not allow connections to http://composer.test/packages.json. See https://getcomposer.org/doc/ 06-config.md#secure-http for details.

配置 secure-http 为false

复制代码
composer config secure-http false

如果在 docker 中使用composer 要注意 配置的私有库是否能正常访问

相关推荐
码农时代者1 小时前
拒绝重复造轮子!开发者如何靠“高质量源码”实现项目高效交付?
java·python·php
历程里程碑2 小时前
39. 从零实现UDP服务器实战(带源码) V1版本 - Echo server
服务器·开发语言·网络·c++·网络协议·udp·php
谪星·阿凯2 小时前
CSRF&SSRF漏洞攻击:溯源解析与实战指南
安全·web安全·php·csrf
加密狗复制模拟3 小时前
软件加密狗中时间限制机制的破解
开发语言·网络·安全·php·软件工程·个人开发
linux修理工4 小时前
ip a 命令解析与 IP 地址提取
linux·服务器·php
Volunteer Technology13 小时前
架构面试题(一)
开发语言·架构·php
Okailon19 小时前
PHP面向对象模块 jc-simple-footer 的技术详解
android·php·开源软件·家谱软件
牢七1 天前
PHP Debug配置记录
开发语言·php
NGC_66111 天前
TCP可靠传输怎么实现的
服务器·网络·php
catchadmin1 天前
告别阻塞!用 PHP TrueAsync 实现 PHP 脚本提速 10 倍
开发语言·php