📚 SDK 参考
Composer Skills 提供两套 SDK,外加一组基础层模块。根据你的需求选择:
| SDK | 包路径 | 适用场景 | 需要 PHP? |
|---|---|---|---|
| 🌐 Packagist API SDK | pkg/client、pkg/repository | 搜索包、获取统计、安全公告、包管理 | ❌ 不需要(纯 Go) |
| 🛠️ Composer CLI SDK | pkg/composer | install/update/require/audit/validate 等本地操作 | ✅ 需要 |
基础层
| 模块 | 包路径 | 说明 |
|---|---|---|
| 🔍 检测器 Detector | pkg/detector | 跨 OS 检测 Composer 安装位置 |
| 📦 安装器 Installer | pkg/installer | 自动安装 Composer + PHP |
| 🏷️ 领域模型 Domain | pkg/domain | Packagist API 的数据结构 |
| 🧰 工具集 ComposerUtils | pkg/composerutils | 文件系统、HTTP、Mock、测试辅助 |
如何选择
- 只想查 Packagist 信息 → 用 Packagist API SDK,无需安装任何 PHP 环境。
- 要操作本地 PHP 项目 → 用 Composer CLI SDK,234 个方法覆盖全部 Composer 命令。
- 不确定 Composer 是否已装 → 先用 检测器,缺失则用 安装器 自动装。
快速对比
go
// Packagist API SDK —— 纯 Go,无需 PHP
c := client.NewComposerClient(30 * time.Second)
pkg, _ := c.GetPackage("monolog/monolog")
// Composer CLI SDK —— 操作本地项目
comp, _ := composer.New(composer.DefaultOptions())
comp.Install(false, true)
result, _ := comp.AuditWithJSON()详见各模块文档。