Skip to content

📊 GetConfigStructured

获取当前项目的所有 Composer 配置项,并将文本输出解析为结构化的 *ConfigResult。等价于执行 composer config --list 后自动解析。

何时使用

需要在程序中逐项遍历配置、按 key 过滤或做批量比对时使用。相比 ListConfig 返回的原始字符串,结构化结果更适合机器处理。

签名

go
func (c *Composer) GetConfigStructured() (*ConfigResult, error)

参数

该方法无参数。

返回值

返回值类型说明
第一返回值*ConfigResult解析后的配置结果
第二返回值error执行失败时返回

ConfigResultConfigItem 字段:

字段类型说明
ConfigResult.Items[]ConfigItem全部配置项列表
ConfigItem.Keystring配置项名称
ConfigItem.Valuestring配置项值
ConfigItem.Sourcestring配置来源(解析时通常为空)

示例

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

	result, err := comp.GetConfigStructured()
	if err != nil {
		log.Fatalf("获取配置失败: %v", err)
	}

	for _, item := range result.Items {
		fmt.Printf("%s = %s\n", item.Key, item.Value)
	}
}

进阶

  • 底层解析函数 ParseConfigList(output string) *ConfigResult 可独立用于解析任意 composer config --list 文本。
  • 若只需原始文本,使用 ListConfig
  • 若只需单个配置项,使用 GetConfigWithGlobal

基于 MIT 许可证发布