Skip to content

➕ AddRequire

composer.json 添加一个依赖包,根据 isDev 决定写入 requirerequire-dev 段。

何时使用

需要以编程方式声明项目依赖时使用。相比执行 composer require 命令,本方法只修改 composer.json 文件本身,不触发实际安装,适合批量生成或模板化项目配置。

签名

go
func (c *Composer) AddRequire(packageName, version string, isDev bool) error

参数

参数类型说明
packageNamestring包名,例如 symfony/console
versionstring版本约束,例如 ^5.0
isDevbooltrue 写入 require-devfalse 写入 require

返回值

  • error:读取或写入 composer.json 失败时返回错误。

示例

go
package main

import (
	"log"

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

func main() {
	comp, err := composer.New(composer.DefaultOptions())
	if err != nil {
		log.Fatal(err)
	}

	// 添加生产依赖
	if err := comp.AddRequire("symfony/console", "^5.0", false); err != nil {
		log.Fatal(err)
	}

	// 添加开发依赖
	if err := comp.AddRequire("phpunit/phpunit", "^9.0", true); err != nil {
		log.Fatal(err)
	}
}

进阶

  • 🔄 本方法内部流程:ReadComposerJSON → 修改映射 → WriteComposerJSON,若对应 map 为 nil 会自动初始化。
  • ⚠️ 若包已存在,会覆盖原版本约束。
  • 🚀 如需真正安装依赖到 vendor,改用 RequirePackage(执行 composer require 命令)。批量声明可用 RequireMultiple
  • 🗑️ 对应的移除方法见 RemoveRequire

基于 MIT 许可证发布