Skip to content

✅ Validate

校验 composer.json 是否有效,相当于执行 composer validate。这是一个纯校验方法:它只返回 error,当发现问题时直接以错误形式返回,校验通过则返回 nil

📋 签名

go
func (c *Composer) Validate() error

📥 参数

参数类型说明
本方法不接收任何参数

📤 返回值

返回值类型说明
唯一返回值error校验失败时返回错误(包含 Composer 的报错信息),nil 表示 composer.json 有效

与 ValidateStructured / ValidateStrict 的区别

本方法签名是 error(而非 (string, error)),意味着它是一个纯校验入口:发现任何问题时直接返回错误并中止流程,不输出可供程序解析的结果文本。如果你需要拿到校验的完整输出文本以便记录日志、或在 CI 中展示详情,请改用 ValidateStructuredValidateStrict;本方法更适合“通过即继续、失败即报错”的简单守卫场景。

📝 示例

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.Fatalf("初始化 Composer 失败: %v", err)
	}

	if err := comp.Validate(); err != nil {
		log.Fatalf("composer.json 校验失败: %v", err)
	}
	fmt.Println("composer.json 校验通过")
}

🚀 进阶

  • 📋 需要更严格的校验(将 warning 也视为错误):使用 ValidateComposerJson(true, false)composer validate --strict)。
  • 🔗 需要连同依赖一起校验:使用 ValidateComposerJson(false, true)composer validate --with-dependencies)。
  • 📦 需要结构化结果以便程序处理:使用 ValidateStructured
  • 🧪 在 CI/CD 流水线或提交前钩子中调用本方法,可在依赖安装之前提前拦截格式错误的 composer.json

基于 MIT 许可证发布