Skip to content

🏗️ GetProjectSummary

综合多个信息源,返回项目的完整摘要,包括基本信息、依赖数量、过时包数、安全漏洞数、Composer 与 PHP 版本。

何时使用

当你需要为项目生成一份"体检报告"或仪表盘数据时使用。它内部聚合了 ReadComposerJsonGetProjectDependenciesGetOutdatedInfoGetAuditInfoGetVersion 等多个调用,是最高层的便捷方法。

签名

go
func (c *Composer) GetProjectSummary() (*ProjectSummary, error)

参数

该方法无参数。

返回值

返回值类型说明
第一返回值*ProjectSummary项目摘要结构体
第二返回值error始终为 nil(内部各步骤容错)

ProjectSummary 字段:NameDescriptionTypeLicenseDirectDependencyCountDevDependencyCountTotalInstalledCountOutdatedCountVulnerabilityCountComposerVersionPHPVersion

示例

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)
	}

	summary, err := comp.GetProjectSummary()
	if err != nil {
		log.Fatalf("获取项目摘要失败: %v", err)
	}
	fmt.Printf("项目: %s\n", summary.Name)
	fmt.Printf("过时包: %d, 安全漏洞: %d\n",
		summary.OutdatedCount, summary.VulnerabilityCount)
	fmt.Printf("Composer: %s, PHP: %s\n",
		summary.ComposerVersion, summary.PHPVersion)
}

进阶

  • 只需要依赖数量与包名使用更轻量的 GetProjectDependencies
  • 单独查过时包详情使用 GetOutdatedInfo,单独查漏洞使用 GetAuditInfo
  • 因为聚合了多个命令调用,在大型项目上耗时较长,建议缓存结果。

基于 MIT 许可证发布