Skip to content

✅ IsPlatformAvailable

检查指定的平台需求(如 phpext-mbstring)是否在当前环境中可用。

何时使用

部署脚本或运行时自检中,需要快速判断某个 PHP 扩展或 PHP 版本约束是否满足时使用。

签名

go
func (c *Composer) IsPlatformAvailable(platform string, version string) (bool, error)

参数

参数类型说明
platformstring平台名称,例如 phpext-mbstring
versionstring版本约束,例如 >=7.4;可传空字符串表示不约束版本

返回值

  • bool:平台需求满足返回 true,否则返回 false
  • 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.Fatal(err)
    }

    // 检查 PHP 版本
    ok, err := comp.IsPlatformAvailable("php", ">=7.4")
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println("PHP>=7.4 满足:", ok)

    // 检查扩展是否安装
    ok, err = comp.IsPlatformAvailable("ext-mbstring", "")
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println("mbstring 扩展已安装:", ok)
}

进阶

  • 该方法先调用 CheckPlatform 查找需求;若 composer.json 中未列出该平台,则直接执行 composer check-platform <name>:<version> 探测
  • 判断输出是否包含 is not available 来决定可用性
  • 若只需列出全部扩展,使用 GetExtensions

基于 MIT 许可证发布