🔍 UpdateDryRun
模拟执行依赖更新,不真正改动任何文件,仅输出将要发生的版本变化。
何时使用
当你想在升级依赖前预览哪些包会被更新、是否引入破坏性变更、或验证约束是否冲突时使用。相当于执行 composer update --dry-run [packages...]。
签名
go
func (c *Composer) UpdateDryRun(packages []string) (string, error)参数
| 参数 | 类型 | 说明 |
|---|---|---|
packages | []string | 要模拟更新的包名列表;传空切片表示模拟更新所有包 |
返回值
string:模拟更新的输出结果,包含将升级/降级的包及版本。error:模拟过程中发生错误时返回相应错误信息,成功时为nil。
示例
go
package main
import (
"fmt"
"log"
"github.com/scagogogo/composer-skills/pkg/composer"
)
func main() {
comp, err := composer.New(composer.DefaultOptions())
if err != nil {
log.Fatalf("初始化失败: %v", err)
}
// 模拟更新指定包,先看结果再决定是否真正升级
output, err := comp.UpdateDryRun([]string{"symfony/console"})
if err != nil {
log.Fatalf("模拟更新失败: %v", err)
}
fmt.Println("模拟更新输出:")
fmt.Println(output)
}进阶
- dry-run 不会改写
composer.lock,可安全在 CI 中用于依赖变更预检。 - 真正执行更新见
Update或UpdateWithOptions。 - 模拟安装见
InstallDryRun。