🔗 UpdateWithDependencies
使用 --with-dependencies 选项更新指定包及其依赖项,而不仅限直接指定的包。
何时使用
当你更新某个包后,其依赖也需要同步更新以兼容新版本时使用。相当于执行 composer update --with-dependencies [packages...]。注意 Composer 默认只更新直接传入的包,依赖包不会自动升级。
签名
go
func (c *Composer) UpdateWithDependencies(packages []string) error参数
| 参数 | 类型 | 说明 |
|---|---|---|
packages | []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)
}
// 升级 symfony/console 及其依赖,确保整体兼容
if err := comp.UpdateWithDependencies([]string{"symfony/console"}); err != nil {
log.Fatalf("更新依赖失败: %v", err)
}
fmt.Println("依赖及子依赖更新完成")
}进阶
- 需要递归更新所有层级依赖时使用
UpdateWithAllDependencies(--with-all-dependencies)。 - 需要组合
--with-dependencies与其他选项时使用UpdateWithOptions。 - 仅更新直接指定包见
Update。