Skip to content

⚙️ SetConfigWithGlobal

写入某个 Composer 配置项的值,可选择写入全局配置或项目配置。等价于执行 composer config [--global] <setting> <value>

何时使用

需要在程序中修改 Composer 配置(如设置 preferred-installdist、指定自定义 vendor-dir)时使用。global=true 写入 COMPOSER_HOME/config.jsonglobal=false 写入当前项目的 composer.json

签名

go
func (c *Composer) SetConfigWithGlobal(setting string, value string, global bool) error

参数

参数类型说明
settingstring配置项名称,如 preferred-install
valuestring要写入的值
globalbooltrue 写入全局配置,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)。

基于 MIT 许可证发布