🌐 SetEnvVariable
设置一个 Composer 环境变量。等价于调用 Go 标准库的 os.Setenv,键为 EnvironmentVariable 常量(如 COMPOSER_HOME)。
何时使用
当需要在进程级别调整 Composer 行为(自定义主目录、缓存目录、超时等)时使用。环境变量优先级高于配置文件,适合 CI/容器场景。
签名
go
func SetEnvVariable(name EnvironmentVariable, value string) error参数
| 参数 | 类型 | 说明 |
|---|---|---|
name | EnvironmentVariable | 环境变量名,使用预定义常量如 EnvComposerHome |
value | string | 要设置的值 |
常用常量:EnvComposerHome、EnvComposerCacheDir、EnvComposerProcessTimeout、EnvComposerMemoryLimit、EnvComposerNoInteraction、EnvComposerVendorDir 等。
返回值
| 返回值 | 类型 | 说明 |
|---|---|---|
| 唯一返回值 | error | 设置失败时返回(通常为 nil) |
示例
go
package main
import (
"log"
"github.com/scagogogo/composer-skills/pkg/composer"
)
func main() {
if err := composer.SetEnvVariable(composer.EnvComposerHome, "/opt/composer-home"); err != nil {
log.Fatalf("设置环境变量失败: %v", err)
}
}进阶
- 读取环境变量用 GetEnvVariable。
- 设置超时、内存限制、禁用交互等有专用快捷函数:SetProcessTimeout、SetMemoryLimit、DisableInteraction。
- 该函数是包级函数(非
Composer方法),影响整个进程的环境。