phramework / validate
phramework 的验证库
1.3.0
2019-05-09 21:31 UTC
Requires
- php: ^7.1|^8.0.0
- ext-json: *
- phramework/exceptions: ^1.0.0
Requires (Dev)
- codacy/coverage: ^1.0
- phpunit/phpunit: ^7.5.10
- squizlabs/php_codesniffer: ^3.4.2
- dev-dev-1.x
- 1.3.0
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.0
- 1.0.0-RC5
- 1.0.0-RC4
- 1.0.0-RC3
- 1.0.0-RC2
- 1.0.0-RC1
- 1.0.0-RC
- v0.12.0
- 0.11.1
- 0.11.0
- 0.10.3
- 0.10.2
- 0.10.1
- 0.10.0
- 0.9.0
- 0.8.0
- 0.7.2
- 0.7.1
- 0.7.0
- 0.6.2
- 0.6.1
- 0.6.0
- 0.5.1
- 0.5.0
- 0.4.5
- 0.4.4
- 0.4.3
- 0.4.2
- 0.4.1
- 0.4.0
- 0.3.0
- 0.2.2
- 0.2.0
- 0.1.2
- 0.1.1
- 0.1.0
- 0.0.0
- dev-master
- dev-xs-master-travis-7.4
- dev-xs-travis-7.4
- dev-ak-update_copyright_year
- dev-ak-support_optional_semicolon_in_offset
- dev-ak-fixes_in_tests
- dev-ak-add_more_testcases
- dev-xs-updated-travis
- dev-xs-set-exclusiveMinimum-default-false
- dev-xs-nullable-types
- dev-dev-x-visibility
- dev-dev-pointers
This package is auto-updated.
Last update: 2024-09-11 13:31:00 UTC
README
phramework 的验证库 https://phramework.github.io/validate/
使用方法
使用 composer 安装包
composer require phramework/validate
解析一个整数值
require './vendor/autoload.php'; use \Phramework\Validate\IntegerValidator; $validator = new IntegerValidator(-1, 1); $value = $validator->parse('0'); var_dump($value);
上面的示例将输出
int(0)
解析字符串对象
$personalInformationValidator = new ObjectValidator( (object) [ 'name' => new StringValidator(2, 30), 'city' => new StringValidator(2, 30), 'age' => new IntegerValidator(1, 200), ], ['name', 'city', 'age'], //required properties false //no additional properties allowed ); $personalInformation = $validationModel->parse((object) [ 'name' => 'Jane Doe', 'city' => 'Athens', 'age' => 28 ]); print_r($personalInformation);
上面的示例将输出
stdClass Object
(
[name] => Jane Doe
[city] => Athens,
[age] => 28
)
验证枚举字符串数组
/* * A validator that allows you to pick one or two colors between blue, green and red */ $colorsValidator = new ArrayValidator( 1, //minItems 2, //maxItems (new StringValidator()) //items ->setEnum([ 'blue', 'green', 'red', ]), true //unique items ); /* * $parsedOneItem will be validated successfully */ $parsedOneItem = $colorsValidator->parse(['blue']); //will be [blue] /* * $parsedTwoItems will be validated successfully */ $parsedTwoItems = $colorsValidator->parse(['blue', 'red']); //will be [blue, red] /* * $resultOfZeroItemsStatus cannot be validated true the validator requires minItems of 1 */ $resultOfZeroItemsStatus = $colorsValidator->validate([]); $resultOfZeroItemsStatus->getStatus(); // will be false because validation failed /** @var \Phramework\Exceptions\IncorrectParameterException $exception in this case */ $exception = $resultOfZeroItemsStatus->getException(); $exception->getFailure(); // will be minItems /* * $resultOfIncorrectItemsStatus cannot be validated true because "yellow" is not an allowed item */ $resultOfIncorrectItemsStatus = $colorsValidator->validate(['yellow']); $resultOfIncorrectItemsStatus->getStatus(); // will be false because validation failed /** @var \Phramework\Exceptions\IncorrectParameterException $exception in this case */ $exception = $resultOfIncorrectItemsStatus->getException(); $exception->getFailure(); // will be items /* * Following will throw \Phramework\Exceptions\IncorrectParameterException * with failure maxItems because validator requires maxItems 2 */ $colorsValidator ->parse([ 'blue', 'green', 'red' ]);
查看 wiki 获取更多示例。
开发
安装依赖
composer update
测试和代码风格检查
composer test
composer lint
生成文档
composer doc
许可证
版权 2015-2019 Xenofon Spafaridis
根据 Apache 许可证 2.0 版(“许可证”)授权;除非适用法律要求或书面同意,否则不得使用此文件,除非遵守许可证。您可以在以下位置获取许可证副本:
https://apache.ac.cn/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则在许可证下分发的软件按“原样”提供,不提供任何明示或暗示的保证或条件。有关许可证的具体语言、权限和限制,请参阅许可证。