ayeo / validator
通用且独立的验证器
1.2.6
2021-02-25 11:25 UTC
Requires
- php: >=5.4.0
Requires (Dev)
- phpspec/phpspec: ~2.1
- phpunit/phpunit: ~4.0
This package is auto-updated.
Last update: 2024-09-25 19:30:30 UTC
README
独立的库允许简单验证其他对象
安装
使用composer
composer require ayeo/validator
示例对象
让我们考虑以下简化对象
class Company { /** @var Address */ private $address; /** @var string */ public $name; /** @var Address */ public function getAddress() { return $this->address(); } }
class Address { /** @var string */ public $street; /** @var string */ public $town; /** @var string */ public $countries; }
验证规则
要处理验证,我们需要定义我们的规则
use Ayeo\Validator\ValidationRules class CompanyValidationRules extends ValidationRules { public function getRules() { return [ ['company', [ ['name', new MinLength(5)], ['address', ['street', new MinLength(5)], ['town', new MinLength(5)], ['country', new OneOf(['USA', 'UK', 'Poland'])] ] ] ]; } }
它并不太复杂,但效果很好。正如你所见,我们能够验证嵌套对象。验证器足够智能,可以获取私有和受保护属性(如果我们有getter)。验证器使用
$company = new Company; $company->name = "Test Company"; $validator = new Validator(new CompanyValidationRules); $isValid = $validator->validate($company); $errors = $validator->getErrors();
默认值
版本1.2引入了默认值支持。为了设置默认值,您需要将其作为第三个参数传递。如果字段值为null,则将使用默认值。请注意,默认值仍然是进一步验证的对象 - 如果您设置了无效的默认值,它将导致错误
use Ayeo\Validator\ValidationRules class CompanyValidationRules extends ValidationRules { public function getRules() { return [['company', [['name', new MinLength(5), "Unknown name"]]]; } }
允许null
默认情况下,给定的验证器将跳过对null值的检查。当然,您需要检查其中一些null值。如果约束类实现了CheckNull接口,验证器将强制检查字段,即使它是null。目前,NotNull约束就是这样一种类型。
可用的约束
- 长度
- MinLength
- MaxLength
- 整数
- 数字
- NumericMin
- NumericMax
- NotNull
- NonEmpty
- ArrayOfType
- IsArray
- ClassInstance
- NotClassInstance
- LowerThanField
- NoWhitespace
随时添加更多!