noxkiwi / validator
我是一个验证库。
dev-master
2020-07-09 00:00 UTC
Requires
- php: >=8.0.0
- noxkiwi/core: *
- noxkiwi/singleton: *
Requires (Dev)
- phpunit/phpunit: ^7
This package is auto-updated.
Last update: 2024-09-16 11:34:33 UTC
README
错误的开端
在2016年,在我们初创公司忙碌的初期阶段,我们犯了一个关键的错误,这影响了我们的销售经理几个月的发票准备。我们错误地多次应用了净销售额的税计算,甚至在已经加成的基础上,导致重大错误。这个问题几个月都没有被发现,造成了相当大的麻烦。因此,我们开发了两个独立的库,以确保我们所有平台上的值都是有效的。
第一个承诺是通过创建Value库来确保整个项目中的参数有效。然后,作为一个逻辑上的结论,下一步是实现一个标准来规定如何验证数据。
// The scenario is real, but this example is much simplified, of course. function createUser(array $request): void { // validate field by field... }
Validator 💘 Value
Validator
- 检查输入的完整性。
- 返回一个或多个详细信息,说明为什么输入有问题。
Value
- 只能使用有效的输入来构建。
- 一旦构建,输入就是不可变的,确保在运行时保持完整性。
只是一个例子
当验证数据的完整性时,你不仅需要知道输入有问题,还需要非常详细的信息,说明为什么这个值实际上有问题。因此,我们在几乎处理用户输入的每个方法中都引入了validator结构。我们不仅需要验证数字。已经有一系列Validators。示例Validators
IbanValidator
EmailValidator
DomainValidator
ConnectionValidator
And many more...
以下是您可以使用这些Value对象的方式:如果您打算使用Validator堆栈来处理用户输入,您可以轻松完成这些事情
<?php declare(strict_types = 1); namespace noxkiwi\validator; use noxkiwi\validator\Interfaces\ValidatorInterface; class MyController { public function checkEmail(string $mailAddress): UserObject { $errors = EmailValidator::getInstance()->validate($mailAddress); if ($errors) { $this->response->send(Http::400, ErrorMessageBuilder::build($errors); return; } return UserTable::findUserForMail($mailAddress); } } class UserTable { public static function findUserForMail(string $mailAddress): UserObject { // PSEUDO } }
深入研究
另一方面,您还可以依赖我们集成了Validator堆栈的Value对象。这样,您可以确保方法findUserForMail
将使用有效的输入调用,无需进一步验证。
class MyController { public function checkEmail(string $mailAddress): UserObject { try { $mail = new EmailValue($mail); return UserTable::findUserForMail($mail); } catch (\Exception $e) { $this->response->send(Http::400, ErrorMessageBuilder::build($e)); } } } class UserTable { public static function findUserForMail(EmailValue $mail): UserObject { //PSEUDO } }
接口方法
validate
public function validate(mixed $value, ?array $options = null): array;
- 描述:验证给定的值,并返回一个错误数组。如果值有效,则数组为空。可以提供可选的验证选项。
- 参数
mixed $value
:要验证的值。array|null $options
:(可选)验证选项数组。
- 返回:
array
- 错误数组。
isValid
public function isValid(mixed $value): bool;
- 描述:将值发送到validate函数,如果错误数组为空,则返回true。
- 参数
mixed $value
:要验证的值。
- 返回:
bool
- 如果值有效则返回true,否则返回false。
getErrors
public function getErrors(): array;
- 描述:返回实例中存在的所有错误。
- 参数:无。
- 返回:
array
- 错误数组。
reset
public function reset(): Validator;
- 描述:从Errorstack实例中删除任何错误。
- 参数:无。
- 返回:
\noxkiwi\validator\Validator
- Validator实例。
让我们联系!
如果您对合作的可能性感到兴奋,或者只是想讨论创新的想法,我非常愿意听到您的声音。不要犹豫,通过电子邮件与我联系。
让我们一起创造一些惊人的东西吧!