artifact 仓库类型用于从本地压缩包加载PHP包,适合离线环境、私有库部署及CI/CD缓存;通过配置本地目录扫描ZIP或TAR文件,要求归档内含composer.json并定义包名版本,相比Packagist或VCS更稳定快速但需手动管理,适用于构建封闭可重复的部署环境。

Composer 的 "artifact" 仓库类型是一种本地文件系统仓库,用于从本地的压缩包(如 ZIP 或 TAR 文件)中加载 PHP 包。它不依赖网络源(比如 Packagist 或 VCS),而是指向一个包含预打包的 PHP 库的目录。
用途和适用场景
这种类型适合在以下情况使用:
- 无法访问外部网络,但已有包的离线副本
- 使用私有或内部开发的库,已打包成归档文件
- 需要稳定、不可变的依赖版本(通过固定归档文件)
- CI/CD 环境中缓存依赖包以提高安装速度
配置方式
{
"repositories": [
{
"type": "artifact",
"url": "path/to/artifacts"
}
]
}
其中 path/to/artifacts 是一个本地目录,里面存放了各种 .zip 或 .tar 文件。Composer 会扫描这些文件,并提取其中的 composer.json 信息来解析依赖。
归档文件要求
每个压缩包必须满足:
- 包含根目录下的 composer.json 文件
- 包名和版本需在 composer.json 中明确定义
- 支持 zip、tar、tar.gz、tar.bz2 等常见格式
与其它仓库对比
相比 composer(Packagist 类型)或 vcs(Git 仓库),artifact 的优势在于完全离线可用、速度快、可控性强,缺点是需要手动管理归档文件,不适合频繁更新的开发流程。
基本上就这些。artifact 类型适合构建封闭、可重复的部署环境。










