首先在composer.json中配置私有仓库为VCS类型,使用HTTPS地址并设置type为vcs;接着通过Personal Access Token进行认证,将token保存到Composer全局配置中,GitHub使用github-oauth.github.com,GitLab使用gitlab-oauth.gitlab.com;确保私有库的composer.json包含正确的name和autoload配置以支持自动加载;可选使用SSH替代HTTPS,需配置对应SSH密钥;若更换token可清除缓存或更新config。完成配置后运行composer install即可拉取私有仓库代码。

在使用 Composer 管理 PHP 项目依赖时,有时需要引入私有的 GitHub 或 GitLab 仓库。由于这些仓库无法公开访问,Composer 需要通过认证方式拉取代码。这可以通过配置 VCS(版本控制系统)类型仓库并结合 OAuth token 实现。
配置私有仓库为 VCS 类型
Composer 支持将 Git 仓库作为自定义包源。你需要在项目的 composer.json 中声明该私有仓库:
{
"repositories": [
{
"type": "vcs",
"url": "https://github.com/your-company/your-private-repo"
}
],
"require": {
"your-company/your-private-repo": "dev-main"
}
}
注意:
- type 设为 vcs 告诉 Composer 这是一个版本控制仓库。
- url 使用 HTTPS 地址,便于配合 token 认证。
- 包名通常由 GitHub/GitLab 的组织(或用户)和仓库名组成。
使用 OAuth Token 进行身份认证
为了授权 Composer 拉取私有仓库,需提供访问令牌(token)。不要将 token 写在 composer.json 中,应通过 Composer 的全局配置存储:
获取 token:
- GitHub:进入 Settings → Developer settings → Personal access tokens → Generate new token,勾选 repo 权限。
- GitLab:进入 Preferences → Access Tokens,选择 read_repository 权限生成。
将 token 添加到 Composer 配置:
composer config -g github-oauth.github.com
对于 GitLab:
composer config -g gitlab-oauth.gitlab.com
这样 Composer 在请求仓库时会自动携带 token,完成认证。
处理包的命名与 autoload
确保私有仓库的 composer.json 正确设置了 name 和 autoload 字段,例如:
{
"name": "your-company/your-private-repo",
"autoload": {
"psr-4": {
"YourCompany\\PrivateRepo\\": "src/"
}
}
}
否则主项目可能无法正确加载类文件。
优化体验:使用 SSH 或缓存 Token
如果你更习惯使用 SSH,可将仓库 URL 改为 ssh 格式:
"url": "git@gitlab.com:your-company/your-private-repo.git"
前提是已配置好 SSH 密钥并添加到 GitHub/GitLab 账户。
另外,Composer 会缓存认证信息,若更换 token 可运行:
composer clear-cache
或重新执行 composer config 更新。
基本上就这些。配置完成后,运行 composer install 即可拉取私有仓库代码。不复杂但容易忽略细节。










