✅ IsPlatformAvailable
检查指定的平台需求(如 php 或 ext-mbstring)是否在当前环境中可用。
何时使用
部署脚本或运行时自检中,需要快速判断某个 PHP 扩展或 PHP 版本约束是否满足时使用。
签名
go
func (c *Composer) IsPlatformAvailable(platform string, version string) (bool, error)参数
| 参数 | 类型 | 说明 |
|---|---|---|
platform | string | 平台名称,例如 php 或 ext-mbstring |
version | string | 版本约束,例如 >=7.4;可传空字符串表示不约束版本 |
返回值
bool:平台需求满足返回true,否则返回falseerror:检查过程中执行命令或解析失败时返回错误
示例
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