🖥️ CheckPlatform
检查当前系统是否满足 composer.json 中定义的平台需求(PHP 版本、扩展等),返回结构化的平台信息列表。
何时使用
需要在代码里判断部署环境是否满足项目的 PHP 版本或扩展要求,例如 CI 流水线预检、容器启动自检时使用。
签名
go
func (c *Composer) CheckPlatform() ([]PlatformInfo, error)参数
| 参数 | 类型 | 说明 |
|---|---|---|
| 无 | — | 该方法不接收参数,直接读取当前项目的 composer.json |
返回值
[]PlatformInfo:平台需求信息切片,每个元素包含Name、Version、Available、Required字段error:执行composer check-platform --format=json或解析失败时返回错误
go
type PlatformInfo struct {
Name string `json:"name"`
Version string `json:"version"`
Available bool `json:"available"`
Required string `json:"required,omitempty"`
}示例
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)
}
platforms, err := comp.CheckPlatform()
if err != nil {
log.Fatalf("检查平台需求失败: %v", err)
}
for _, p := range platforms {
status := "不满足"
if p.Available {
status = "满足"
}
fmt.Printf("%s %s: %s\n", p.Name, p.Version, status)
}
}进阶
- 若要检查
composer.lock而非composer.json,使用 CheckPlatformWithLock - 若只需判断单个平台是否可用,使用 IsPlatformAvailable
- 若需带状态标记的结构化结果(
ok/missing/mismatch),使用 CheckPlatformReqsStructured