🏗️ GetProjectSummary
综合多个信息源,返回项目的完整摘要,包括基本信息、依赖数量、过时包数、安全漏洞数、Composer 与 PHP 版本。
何时使用
当你需要为项目生成一份"体检报告"或仪表盘数据时使用。它内部聚合了 ReadComposerJson、GetProjectDependencies、GetOutdatedInfo、GetAuditInfo、GetVersion 等多个调用,是最高层的便捷方法。
签名
go
func (c *Composer) GetProjectSummary() (*ProjectSummary, error)参数
该方法无参数。
返回值
| 返回值 | 类型 | 说明 |
|---|---|---|
| 第一返回值 | *ProjectSummary | 项目摘要结构体 |
| 第二返回值 | error | 始终为 nil(内部各步骤容错) |
ProjectSummary 字段:Name、Description、Type、License、DirectDependencyCount、DevDependencyCount、TotalInstalledCount、OutdatedCount、VulnerabilityCount、ComposerVersion、PHPVersion。
示例
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。 - 因为聚合了多个命令调用,在大型项目上耗时较长,建议缓存结果。