Skip to content

📦 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 可一并查看项目里定义的脚本。

基于 MIT 许可证发布