macfja / validator
该包的最新版本(dev-master)没有可用的许可证信息。
Validator是一种简单的方式来验证属性或对象。
dev-master
2015-06-14 11:37 UTC
Requires
- macfja/value-provider: dev-master
Requires (Dev)
- doctrine/annotations: ~1.2
- phpunit/phpunit: 4.1.*
Suggests
- doctrine/annotations: To use annotation to declare object validator and valid it
This package is auto-updated.
Last update: 2024-09-17 00:51:27 UTC
README
Validator是一种简单的方式来验证属性或对象。
特性
- 可以与注解一起工作
- 易于创建自己的验证器
- 如果兼容,验证器可以提供您值/对象的清洁版本
安装
Composer
composer require macfja/validator @dev
示例
验证一个值
$myValue = '2014-09-02'; $validator = new LowerThan(); $validator->value = new \DateTime('2012-07-01'); $validator->type = 'date'; $validator->setInput($myValue); if ($validator->isValid()) { die('Houston, we\'ve had a problem'); } else { die('You are too old for that'); }
验证一个对象(方法1)
类 Person
class Person { public $firstName = 'John'; public $lastName = 'Doe'; public $email = 'jdoe@example.com'; public $dob; }
在您的代码中的某处
$jdoe = new Person(); $objectValidator = new ObjectValidator($jdoe); // - Names validator $validator1 = new Length(); $validator1->type = 'string'; $validator1->minimum = 1; $validator1->maximum = 255;//SQL limit? // - email validator $validator2 = new Email(); // - age $validator3 = new DateTime(); $validator4 = new LowerThan(); $validator4->value = '-18 years'; $validator4->type = 'date'; $objectValidator->addValidator('firstName', $validator1); $objectValidator->addValidator('lastName', $validator1); $objectValidator->addValidator('email', $validator2); $objectValidator->addValidator('dob', $validator3); $objectValidator->addValidator('dob', $validator4); if (!$objectValidator->isValid()) { var_dump($objectValidator->getErrors()); }
验证一个对象(方法2 - 注解)
类 Person
use MacFJA\Validator\Annotation as Validator class Person { /** @Validator\Length(type="string", minimum=1, maximum=255) */ public $firstName = 'John'; /** @Validator\Length(type="string", minimum=1, maximum=255) */ public $lastName = 'Doe'; /** @Validator\Email */ public $email = 'jdoe@example.com'; /** * @Validator\DateTime * @Validator\LowerThan("-18 years", type="date") */ public $dob; }
在您的代码中的某处
$jdoe = new Person(); $objectValidator = new AnnotationValidator($jdoe); if (!$objectValidator->isValid()) { echo sprintf("You have %d error(s) in your object", $objectValidator->getErrorsCount()); }
关于注解的注意事项
对于注解验证器,您必须
- 在您的项目中添加 Doctrine Annotations 库(
doctrine/annotations
)。 - 将所有注解添加到 Doctrine 注解注册表中。
您必须在使用之前添加所有注解。
为此,您可以调用函数 AnnotationValidator::registerAnnotations()
。此函数将所有默认验证器注解添加到 doctrine 注解注册表中。