Skip to content

🔍 GetRequireWithVersion

获取指定包当前已安装的版本号,等价于执行 composer show <包名> --format=json 并解析 version 字段。

何时使用

当你需要拿到某个依赖的精确版本号用于版本比对、兼容性检查或日志记录时使用。包未安装时会返回错误。

签名

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

参数

参数类型说明
packageNamestring要查询版本的包名,如 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

基于 MIT 许可证发布