legatus/validator

PSR-7 的 HTTP 验证库

0.1.0 2020-07-25 22:24 UTC

This package is auto-updated.

Last update: 2024-09-26 08:14:00 UTC


README

PSR-7 的 HTTP 验证库

Type Coverage Mutation testing badge

安装

您可以使用 Composer 安装 Validator 组件。

composer require legatus/validator

快速开始

<?php

$validator = Legatus\Http\Validator::build($psr7Request)
    ->body('id')->required()->uuid()
    ->body('name.first')->string()->required()
    ->body('name.middle')->string()
    ->body('name.last')->string()->required()
    ->body('password')->string()->required()->min(6)->password()->max(30)
    ->body('birthdate')->string()->date()->before('-18years')
    ->body('promo_code')->custom(new Legatus\Http\PromoCode()) // And instance of rule or a callable
    ->body('emails.*')->email()
    ->body('addresses.*.lineOne')->required()->string()
    ->body('addresses.*.lineTwo')->string()
    ->body('addresses.*.city')->required()->string()
    ->body('addresses.*.zip')->string()
    ->body('addresses.*.country')->enum(['CL', 'GB', 'US'])
    ->getValidator();

try {
    $data = $validator->validate();
} catch (Legatus\Http\ValidationFailed $e) {
    // $data = $e->getData();
}

[$id, $name, $password, $birthDate, $promoCode, $emails, $addresses] = $data->values();

更多详细信息,您可以在此处查看在线文档:在线文档

项目状态与发布流程

虽然这个库仍在开发中,但它经过充分测试,应该足够稳定,可以在生产环境中使用。

当前版本号格式为 0.x.y。当引入非破坏性变更(添加新方法、优化现有代码等)时,y 增加一位。

当引入破坏性变更时,总是启动一个新的 0.x 版本周期。

因此,将您的项目锁定到某个发布周期(如 0.2.*)是安全的。

如果您需要升级到较新的发布周期,请查看 发布历史,以了解每个后续 0.x.0 版本引入的变更列表。

社区

我们还没有社区频道。如果您愿意帮忙建立,可以告诉我!

贡献

阅读贡献指南以了解您如何为 Legatus 贡献。

安全问题

请通过电子邮件私下报告安全问题,并在披露之前给我们一段宽限期。

关于 Legatus

Legatus 是由 Matías Navarro Carter 领导的个人开源项目,并由贡献者共同开发。