📦 GetProjectInfo
获取当前项目的基本信息(名称、描述、类型、依赖),返回结构化的 *ComposerJsonInfo,等价于执行 composer config --list --json 并解析结果。
何时使用
当你需要在程序中以结构化方式读取项目的 composer.json 概要信息时使用。返回值是一个结构体,便于直接访问字段,而不必自行解析文本输出。
签名
go
func (c *Composer) GetProjectInfo() (*ComposerJsonInfo, error)ComposerJsonInfo 结构定义如下:
go
type ComposerJsonInfo struct {
Name string `json:"name"`
Description string `json:"description"`
Type string `json:"type"`
Require map[string]string `json:"require"`
RequireDev map[string]string `json:"require-dev"`
}参数
该方法无参数。
返回值
| 返回值 | 类型 | 说明 |
|---|---|---|
| 第一返回值 | *ComposerJsonInfo | 包含项目基本信息和依赖列表的结构体指针 |
| 第二返回值 | error | 获取或解析过程中发生错误时返回,nil 表示成功 |
示例
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)
}
info, err := comp.GetProjectInfo()
if err != nil {
log.Fatalf("获取项目信息失败: %v", err)
}
fmt.Printf("项目名称: %s\n", info.Name)
fmt.Printf("项目描述: %s\n", info.Description)
fmt.Printf("项目类型: %s\n", info.Type)
fmt.Printf("依赖数量: %d\n", len(info.Require))
}进阶
- 需要读取更完整的
composer.json内容,可使用ReadComposerJSON()获取*ComposerJSON。 - 想获取项目依赖的汇总摘要(含直接/间接依赖),可使用
GetProjectDependencies()。 - 配合
ListScripts可一并查看项目里定义的脚本。