Skip to content

💾 SetMemoryLimit

设置 PHP 内存限制。等价于设置 COMPOSER_MEMORY_LIMIT 环境变量。

何时使用

当 Composer 因 PHP 内存不足报错(如 Allowed memory size of ... exhausted)时使用,常见于大型项目执行 install/update

签名

go
func SetMemoryLimit(limit string) error

参数

参数类型说明
limitstring内存限制值,格式同 PHP ini,例如 512M2G-1(无限制)

返回值

返回值类型说明
唯一返回值error设置失败时返回(通常为 nil)

示例

go
package main

import (
	"fmt"
	"log"

	"github.com/scagogogo/composer-skills/pkg/composer"
)

func main() {
	if err := composer.SetMemoryLimit("2G"); err != nil {
		log.Fatalf("设置内存限制失败: %v", err)
	}
	fmt.Println("Composer 内存限制已设置为 2G")
}

进阶

  • 该函数底层设置 EnvComposerMemoryLimit,也可用 SetEnvVariable 等价实现。
  • 读取当前值用 GetEnvVariable(composer.EnvComposerMemoryLimit)。
  • 容器/CI 中建议在启动前设置,以覆盖所有后续 Composer 调用。

基于 MIT 许可证发布