⚙️ SetConfigWithGlobal
写入某个 Composer 配置项的值,可选择写入全局配置或项目配置。等价于执行 composer config [--global] <setting> <value>。
何时使用
需要在程序中修改 Composer 配置(如设置 preferred-install 为 dist、指定自定义 vendor-dir)时使用。global=true 写入 COMPOSER_HOME/config.json,global=false 写入当前项目的 composer.json。
签名
go
func (c *Composer) SetConfigWithGlobal(setting string, value string, global bool) error参数
| 参数 | 类型 | 说明 |
|---|---|---|
setting | string | 配置项名称,如 preferred-install |
value | string | 要写入的值 |
global | bool | true 写入全局配置,false 写入项目配置 |
返回值
| 返回值 | 类型 | 说明 |
|---|---|---|
| 唯一返回值 | 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)
}
// 设置项目级配置
if err := comp.SetConfigWithGlobal("preferred-install", "dist", false); err != nil {
log.Fatalf("设置项目配置失败: %v", err)
}
fmt.Println("已设置项目 preferred-install = dist")
// 设置全局配置
if err := comp.SetConfigWithGlobal("optimize-autoloader", "true", true); err != nil {
log.Fatalf("设置全局配置失败: %v", err)
}
fmt.Println("已设置全局 optimize-autoloader = true")
}进阶
- 读取配置项使用 GetConfigWithGlobal。
- 删除某个配置项可使用
UnsetConfig(key)。 - 写入会直接落盘到对应的 JSON 文件,操作前建议确认工作目录正确(见
SetWorkingDir)。