Composer 安装 Gitee 包需在项目 composer.json 中配置 vcs 类型仓库并确保包含合法 composer.json、正确 name 字段、PSR-4 自动加载及有效版本标识(tag 或分支),否则会报错找不到包或类未找到。
Composer 不能直接“下载 Gitee 上的 PHP 包”,除非该包已正确发布为 Composer 可识别的包(即有 composer.json、遵循 PSR-4 自动加载、有稳定版本标签或分支),且你配置了正确的仓库源或直接引用 —— 否则 Composer 会报 Could not find package xxx 或 no matching package found。
怎么让 Composer 安装 Gitee 上的私有/非 Packagist 包
核心是告诉 Composer:这个包不在 Packagist,而是在 Gitee 的某个 Git 仓库里。需在项目根目录的 composer.json 中显式声明 repositories,并指定 type: "vcs":
{
"repositories": [
{
"type": "vcs",
"url": "https://gitee.com/username/my-php-package.git"
}
],
"require": {
"username/my-php-package": "dev-main"
}
}
注意点:
-
url必须是可公开克隆的 HTTPS 地址(如含敏感信息,改用 SSH +[email protected]:...并配好 SSH key) - 包名
username/my-php-package必须与该仓库中composer.json里的"name"字段完全一致 - 版本号(如
"dev-main")必须对应仓库中存在的分支名或 tag 名;Gitee 上没打 tag 就只能用dev-xxx分支名 - 如果仓库里没有
composer.json,Composer 会直接拒绝安装
Gitee 仓库如何支持 Composer 安装
不是所有 Gitee 仓库都能被 Composer 安装,必须满足最低结构要求:
立即学习“PHP免费学习笔记(深入)”;
- 根目录下有合法的
composer.json(至少含name和autoload) -
autoload推荐用"psr-4",例如:"autoload": { "psr-4": { "MyPackage\\": "src/" } } - 要有明确的版本标识:打 Git tag(如
v1.0.0)或存在稳定分支(如main、master、dev) - 若用私有仓库(如企业版 Gitee),需在
auth.json中配置 token 或用户名密码(HTTPS 方式)
能不能把 Gitee 配成全局镜像源(类似 packagist.phpcomposer.com)
不能。Gitee 不是 Composer 的元数据源(metadata server),它不提供 packages.json 索引、不支持 search、不兼容 Packagist 协议。所谓“配置码云仓库地址”是个常见误解 —— 你无法把 Gitee 当作 Packagist 替代品全局启用。