📊 GetConfigStructured
获取当前项目的所有 Composer 配置项,并将文本输出解析为结构化的 *ConfigResult。等价于执行 composer config --list 后自动解析。
何时使用
需要在程序中逐项遍历配置、按 key 过滤或做批量比对时使用。相比 ListConfig 返回的原始字符串,结构化结果更适合机器处理。
签名
go
func (c *Composer) GetConfigStructured() (*ConfigResult, error)参数
该方法无参数。
返回值
| 返回值 | 类型 | 说明 |
|---|---|---|
| 第一返回值 | *ConfigResult | 解析后的配置结果 |
| 第二返回值 | error | 执行失败时返回 |
ConfigResult 与 ConfigItem 字段:
| 字段 | 类型 | 说明 |
|---|---|---|
ConfigResult.Items | []ConfigItem | 全部配置项列表 |
ConfigItem.Key | string | 配置项名称 |
ConfigItem.Value | string | 配置项值 |
ConfigItem.Source | string | 配置来源(解析时通常为空) |
示例
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。