innmind/validation
最新稳定版本:2.3.0
Composer 安装命令:
composer require innmind/validation
包简介
README 文档
README
This package is a monadic approach to data validation to easily compose validations rules.
Installation
composer require innmind/validation
Usage
use Innmind\Validation\{ Is, Failure, }; use Innmind\Immutable\Sequence; $valid = [ 'id' => 42, 'username' => 'jdoe', 'addresses' => [ 'address 1', 'address 2', ], 'submit' => true, ]; $invalid = [ 'id' => '42', 'addresses' => [ 'address 1', null, ], 'submit' => true, ]; $validate = Is::shape('id', Is::int()) ->with('username', Is::string()) ->with( 'addresses', Is::list( Is::string()->map( static fn(string $address) => new YourModel($address), ) ) ); $result = $validate($valid)->match( static fn(array $value) => $value, static fn() => throw new \RuntimeException('invalid data'), ); // Here $result looks like: // [ // 'id' => 42 // 'username' => 'jdoe', // 'addresses' [ // new YourModel('address 1'), // new YourModel('address 2'), // ], // ] $errors = $validate($invalid)->match( static fn() => null, static fn(Sequence $failures) => $failures ->map(static fn(Failure $failure) => [ $failure->path()->toString(), $failure->message(), ]) ->toList(), ); // Here $errors looks like: // [ // ['id', 'Value is not of type int'], // ['$', 'The key username is mission'], // ['addresses', 'Value is not of type string'] // ]
统计信息
- 总下载量: 33.89k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 1
- 依赖项目数: 10
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-11-08