Skip to content

📊 GetProjectDependencies

综合读取 composer.jsoncomposer.lock,返回项目依赖的摘要信息,包括直接依赖、开发依赖及全部已安装包。

何时使用

当你需要一次性拿到依赖全貌(数量、包名列表)而非逐个查询时使用。它不执行 Composer 命令,纯文件读取,速度快且不依赖网络。

签名

go
func (c *Composer) GetProjectDependencies() (*ProjectDependencies, error)

参数

该方法无参数。

返回值

返回值类型说明
第一返回值*ProjectDependencies依赖摘要结构体,含各类数量与包名列表
第二返回值error始终为 nil(内部容错,缺文件不报错)

ProjectDependencies 字段:DirectCountDevCountTotalInstalledDirectPackagesDevPackagesInstalledPackages

示例

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
  • 平台要求(phpext-*lib-*)会被自动排除在包名列表之外。

基于 MIT 许可证发布