spacetab-io/body-validator

简化请求体验证的包。

1.1.0 2020-05-21 08:48 UTC

This package is auto-updated.

Last update: 2024-09-21 20:23:38 UTC


README

CircleCI codecov

安装

composer require spacetab-io/body-validator

使用

<?php
use Amp\Loop;
use HarmonyIO\Validation\Rule\Combinator\All;
use HarmonyIO\Validation\Rule\Email\RfcEmailAddress;
use HarmonyIO\Validation\Rule\Network\Url\Url;
use HarmonyIO\Validation\Rule\Text\AlphaNumeric;
use HarmonyIO\Validation\Rule\Text\LengthRange;
use Spacetab\BodyValidator\BodyValidator;
use Spacetab\BodyValidator\BodyValidatorInterface;

Loop::run(static function () {
    $body = [
        'username' => '__roquie',
        'password' => '1',
        'contacts' => [
            [
                'email' => '1mail@@example.com',
                'github' => 'https:/github.com/roquie',
            ],
            [
                'email' => '2mail@@example.com',
                'github' => 'https:/github.com/roquie',
            ],
        ],
    ];

    $validator = new BodyValidator($body, new class implements BodyValidatorInterface {
        public function validate(): iterable {
            yield 'username' => new All(new LengthRange(3, 15), new AlphaNumeric());
            yield 'password' => new LengthRange(12, 255);
            yield 'contacts.*.email' => new RfcEmailAddress();
            yield 'contacts.*.github' => new Url();
        }
    });

    /** @var \Spacetab\BodyValidator\ResultSet $result */
    $result = yield $validator->verify();

    $result->isValid();
    $result->getErrors();
});

支持带有星号的点语法。您可以在这里了解更多:[https://github.com/spacetab-io/obelix-php](https://github.com/spacetab-io/obelix-php)

依赖

  • >= PHP 7.4
  • 使用Composer安装包

许可

MIT许可证

版权所有 © 2020 spacetab.io, Inc. [https://spacetab.io](https://spacetab.io)

特此授予任何获得此软件及其相关文档副本(以下简称“软件”)的人,在不受限制的情况下处理软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向软件提供方提供软件的人进行上述操作,前提是满足以下条件

上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和无侵权性的保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论这些责任是根据合同、侵权或其他法律行为产生的,也不论这些责任是否与软件或其使用或其他方式有关。