💾 SetMemoryLimit
设置 PHP 内存限制。等价于设置 COMPOSER_MEMORY_LIMIT 环境变量。
何时使用
当 Composer 因 PHP 内存不足报错(如 Allowed memory size of ... exhausted)时使用,常见于大型项目执行 install/update。
签名
go
func SetMemoryLimit(limit string) error参数
| 参数 | 类型 | 说明 |
|---|---|---|
limit | string | 内存限制值,格式同 PHP ini,例如 512M、2G、-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 调用。