Skip to content

🔗 ShowReverseDependencies

查询哪些已安装的包依赖于指定的包(反向依赖),相当于执行 composer depends <packageName>,常用于评估移除或升级某个包时的影响范围。

📋 签名

go
func (c *Composer) ShowReverseDependencies(packageName string) (string, error)

📥 参数

参数类型说明
packageNamestring要查询反向依赖的包名,例如 "symfony/polyfill-mbstring"

📤 返回值

返回值类型说明
第一个返回值stringcomposer depends <packageName> 的标准输出文本,列出所有依赖该包的其他包
第二个返回值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("初始化 Composer 失败: %v", err)
	}

	output, err := comp.ShowReverseDependencies("symfony/polyfill-mbstring")
	if err != nil {
		log.Fatalf("获取反向依赖失败: %v", err)
	}
	fmt.Println("依赖于此包的其他包:")
	fmt.Println(output)
}

🚀 进阶

  • ❓ 想知道为什么一个包会被安装(依赖链路):使用 WhyPackagecomposer why <package>)。
  • 🚫 想知道为什么不能安装某个版本:使用 WhyNotPackagecomposer why-not <package> <version>)。
  • ⚠️ 当查询的包未被任何包依赖、或该包未安装时,Composer 可能以非零退出码退出,此时本方法会返回 error,应在调用处妥善处理。
  • 🔧 在移除包(Remove)之前调用本方法,可预先发现受影响的下游包,避免破坏依赖链。

基于 MIT 许可证发布