🔧 GetConfigWithGlobal
读取某个 Composer 配置项的当前值,可选择读取全局配置或项目配置。等价于执行 composer config [--global] <setting>。
何时使用
需要在程序中拿到单个配置项的值(如 preferred-install、bin-dir、vendor-dir)并据此做判断或日志输出时使用。global=true 读取的是 COMPOSER_HOME/config.json 中的全局值,global=false 读取当前项目 composer.json 的值。
签名
go
func (c *Composer) GetConfigWithGlobal(setting string, global bool) (string, error)参数
| 参数 | 类型 | 说明 |
|---|---|---|
setting | string | 配置项名称,如 preferred-install、bin-dir |
global | bool | true 读取全局配置,false 读取项目配置 |
返回值
| 返回值 | 类型 | 说明 |
|---|---|---|
| 第一返回值 | string | 配置项的值(已去除首尾空白) |
| 第二返回值 | error | 执行失败时返回 |
示例
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)
}
// 读取项目级配置
install, err := comp.GetConfigWithGlobal("preferred-install", false)
if err != nil {
log.Fatalf("读取配置失败: %v", err)
}
fmt.Println("项目 preferred-install:", install)
// 读取全局配置
home, err := comp.GetConfigWithGlobal("home", true)
if err != nil {
log.Fatalf("读取全局配置失败: %v", err)
}
fmt.Println("全局 home:", home)
}进阶
- 若要一次列出所有配置项而非单个,使用 ListConfig 或结构化版本 GetConfigStructured。
- 写入配置项使用 SetConfigWithGlobal。
- 想知道某个值来自哪个文件,使用
GetConfigSource(key)。