📊 GetProjectDependencies
综合读取 composer.json 与 composer.lock,返回项目依赖的摘要信息,包括直接依赖、开发依赖及全部已安装包。
何时使用
当你需要一次性拿到依赖全貌(数量、包名列表)而非逐个查询时使用。它不执行 Composer 命令,纯文件读取,速度快且不依赖网络。
签名
go
func (c *Composer) GetProjectDependencies() (*ProjectDependencies, error)参数
该方法无参数。
返回值
| 返回值 | 类型 | 说明 |
|---|---|---|
| 第一返回值 | *ProjectDependencies | 依赖摘要结构体,含各类数量与包名列表 |
| 第二返回值 | error | 始终为 nil(内部容错,缺文件不报错) |
ProjectDependencies 字段:DirectCount、DevCount、TotalInstalled、DirectPackages、DevPackages、InstalledPackages。
示例
go
package main
import (
"fmt"
"log"
"github.com/scagogogo/composer-skills/pkg/composer"
)
func main() {
comp, err := composer.New(composer.DefaultOptions())
if err != nil {
log.Fatalf("初始化失败: %v", err)
}
deps, err := comp.GetProjectDependencies()
if err != nil {
log.Fatalf("获取依赖摘要失败: %v", err)
}
fmt.Printf("直接依赖: %d, 开发依赖: %d, 总安装: %d\n",
deps.DirectCount, deps.DevCount, deps.TotalInstalled)
}进阶
- 想拿到包含过时包数、漏洞数、版本号的完整项目摘要使用 GetProjectSummary。
- 只要直接依赖包名列表使用 GetDirectDependencyNames。
- 平台要求(
php、ext-*、lib-*)会被自动排除在包名列表之外。