🔒 ValidateComposerLock
验证 composer.lock 文件是否存在且与 composer.json 保持同步。等价于执行 composer validate --check-lock。
何时使用
需要确保 lock 文件未丢失、未因 composer.json 变更而失步时使用。常在 CI 中防止开发者提交了 composer.json 改动却忘记更新 lock 的情况。
签名
go
func (c *Composer) ValidateComposerLock() (string, error)参数
该方法无参数。
返回值
| 返回值 | 类型 | 说明 |
|---|---|---|
| 第一返回值 | string | 验证命令的原始输出 |
| 第二返回值 | error | lock 缺失或不同步时返回 |
示例
go
package main
import (
"fmt"
"log"
"strings"
"github.com/scagogogo/composer-skills/pkg/composer"
)
func main() {
comp, err := composer.New(composer.DefaultOptions())
if err != nil {
log.Fatalf("初始化失败: %v", err)
}
output, err := comp.ValidateComposerLock()
if err != nil {
switch {
case strings.Contains(output, "not found"):
fmt.Println("缺少 composer.lock 文件")
case strings.Contains(output, "not up to date"):
fmt.Println("composer.lock 已过期,请运行 composer update")
default:
log.Fatalf("验证失败: %v", err)
}
return
}
fmt.Println("composer.lock 有效")
}进阶
- 完整
composer.json校验使用 ValidateStrict 或 ValidateSchema。 - 结构化结果使用 ValidateStructured。
- 检查 lock 中的平台需求是否满足使用
CheckPlatformReqsLock()。