必须禁用packagist.org并正确配置gitlab私有仓库源与auth.json:repositories需为顶层键、url以.git结尾、紧接{"packagist.org": false};auth.json须置于系统级路径、域名精确匹配、权限600;私有包require需用dev-前缀分支名。

要在PHP项目中稳定复用内部开发的组件,必须让Composer能从企业GitLab拉取私有包并正确解析版本——漏掉packagist.org禁用或写错auth.json路径,整个流程就会静默失败。
在composer.json中声明私有仓库源
打开项目根目录下的composer.json,确保repositories是顶层键,不是嵌套在config或scripts里。
添加一个type为vcs的仓库项,URL必须以.git结尾,例如:"https://gitlab.example.com/acme/utils.git"。写成https://gitlab.example.com/acme/utils会导致No valid composer.json was found错误。
在同一个repositories数组里,必须紧接添加{"packagist.org": false}。这行不能省略,也不能放在数组外;漏掉它,Composer会优先查官方源,你的私有包永远不被匹配。
配置GitLab认证凭证
认证文件auth.json必须放在系统级固定路径,而不是项目目录里:
Linux/macOS:创建~/.composer/auth.json;Windows:创建%APPDATA%\Composer\auth.json。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
文件内容结构必须严格为:{"http-basic": {"gitlab.example.com": {"username": "oauth2", "password": "glpat-xxx"}}。注意域名key只取主机名(不含https://、端口或路径),gitlab.example.com:8080和gitlab.example.com会被视为两个不同key。
权限必须设为600:chmod 600 ~/.composer/auth.json,否则Composer直接忽略该文件,且不报任何提示。
声明并安装私有包依赖
第一步:确认私有仓库根目录的composer.json里已定义"name": "acme/utils"字段,不能大小写混用或加下划线。
第二步:在主项目composer.json的require中写入"acme/utils": "dev-main"。分支名前必须加dev-前缀,写"main"会被当成模糊约束去Packagist查,必然失败。
第三步:执行composer update acme/utils。如果此前没生成过composer.lock,先运行composer install触发完整解析。










