➕ RequirePackage
向项目添加一个新的依赖包,等价于 composer require [--dev] package/name:version。
何时使用
- 🆕 给项目引入一个新依赖(生产或开发)。
- 🔒 锁定某个版本约束,例如
^5.0。 - 🧪 配合
RequireDryRun先预演再正式添加。
签名
go
func (c *Composer) RequirePackage(packageName string, version string, dev bool) error参数
| 参数 | 类型 | 说明 |
|---|---|---|
packageName | string | 要添加的包名,例如 symfony/console |
version | string | 版本约束,例如 ^5.0;传空字符串则使用最新版本 |
dev | bool | true 作为开发依赖(require-dev)添加 |
返回值
| 值 | 类型 | 说明 |
|---|---|---|
| 错误 | error | 添加包过程中发生错误时返回 |
示例
go
package main
import (
"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.RequirePackage("symfony/console", "^5.0", false); err != nil {
log.Fatalf("添加生产依赖失败: %v", err)
}
// 添加开发依赖
if err := comp.RequirePackage("phpunit/phpunit", "^9.0", true); err != nil {
log.Fatalf("添加开发依赖失败: %v", err)
}
}进阶
RequirePackageWithOptions
需要附加 --prefer-source、--no-update 等标志时使用:
go
func (c *Composer) RequirePackageWithOptions(packageName, version string, options map[string]string) erroroptions 是选项映射,无值标志传空字符串。
批量添加
一次添加多个包用 RequireMultiple(additional_methods.go),避免多次触发 composer require 带来的重复依赖解析。
🔍 相关方法
Remove:移除依赖。RequireDryRun:干运行预演添加结果。