🔗 ShowReverseDependencies
查询哪些已安装的包依赖于指定的包(反向依赖),相当于执行 composer depends <packageName>,常用于评估移除或升级某个包时的影响范围。
📋 签名
go
func (c *Composer) ShowReverseDependencies(packageName string) (string, error)📥 参数
| 参数 | 类型 | 说明 |
|---|---|---|
packageName | string | 要查询反向依赖的包名,例如 "symfony/polyfill-mbstring" |
📤 返回值
| 返回值 | 类型 | 说明 |
|---|---|---|
| 第一个返回值 | string | composer 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)
}🚀 进阶
- ❓ 想知道为什么一个包会被安装(依赖链路):使用
WhyPackage(composer why <package>)。 - 🚫 想知道为什么不能安装某个版本:使用
WhyNotPackage(composer why-not <package> <version>)。 - ⚠️ 当查询的包未被任何包依赖、或该包未安装时,Composer 可能以非零退出码退出,此时本方法会返回
error,应在调用处妥善处理。 - 🔧 在移除包(Remove)之前调用本方法,可预先发现受影响的下游包,避免破坏依赖链。