🔍 GetRequireWithVersion
获取指定包当前已安装的版本号,等价于执行 composer show <包名> --format=json 并解析 version 字段。
何时使用
当你需要拿到某个依赖的精确版本号用于版本比对、兼容性检查或日志记录时使用。包未安装时会返回错误。
签名
go
func (c *Composer) GetRequireWithVersion(packageName string) (string, error)参数
| 参数 | 类型 | 说明 |
|---|---|---|
packageName | string | 要查询版本的包名,如 symfony/console |
返回值
| 返回值 | 类型 | 说明 |
|---|---|---|
| 第一返回值 | string | 包的已安装版本号,如 v5.4.0 |
| 第二返回值 | error | 命令执行失败、包未安装或解析失败时返回 |
示例
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)
}
version, err := comp.GetRequireWithVersion("symfony/console")
if err != nil {
log.Fatalf("获取版本失败: %v", err)
}
fmt.Printf("symfony/console 版本: %s\n", version)
}进阶
- 只判断包是否安装(不要版本)使用 IsPackageInstalled。
- 想获取某个包的所有可用版本(非已安装版本)使用
GetPackageVersionsList。 - 修改
composer.json中的版本约束使用UpdatePackageVersion。