Skip to content

🔒 CheckPlatformWithLock

检查当前系统是否满足 composer.lock 文件中锁定的平台需求,返回结构化的平台信息列表。

何时使用

生产部署时通常以 composer.lock 为准,需确认运行环境满足锁定文件中记录的精确 PHP 版本与扩展要求。

签名

go
func (c *Composer) CheckPlatformWithLock() ([]PlatformInfo, error)

参数

参数类型说明
该方法不接收参数,直接读取当前项目的 composer.lock

返回值

  • []PlatformInfo:从 composer.lock 解析出的平台需求信息切片
  • error:执行 composer check-platform --lock --format=json 或解析失败时返回错误

示例

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.CheckPlatformWithLock()
    if err != nil {
        log.Fatalf("检查 lock 文件平台需求失败: %v", err)
    }

    for _, p := range platforms {
        if !p.Available {
            fmt.Printf("警告: %s %s 需求不满足\n", p.Name, p.Required)
        }
    }
}

进阶

  • 该方法内部执行 composer check-platform --lock --format=json,只读取 Lock 字段
  • 对应的非 lock 版本见 CheckPlatform
  • 如需一次性校验 lock 文件同步性,可配合 CheckStructured 使用

基于 MIT 许可证发布