Skip to content

➕ RequirePackage

向项目添加一个新的依赖包,等价于 composer require [--dev] package/name:version

何时使用

  • 🆕 给项目引入一个新依赖(生产或开发)。
  • 🔒 锁定某个版本约束,例如 ^5.0
  • 🧪 配合 RequireDryRun 先预演再正式添加。

签名

go
func (c *Composer) RequirePackage(packageName string, version string, dev bool) error

参数

参数类型说明
packageNamestring要添加的包名,例如 symfony/console
versionstring版本约束,例如 ^5.0;传空字符串则使用最新版本
devbooltrue 作为开发依赖(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) error

options 是选项映射,无值标志传空字符串。

批量添加

一次添加多个包用 RequireMultipleadditional_methods.go),避免多次触发 composer require 带来的重复依赖解析。

🔍 相关方法

基于 MIT 许可证发布