yiisoft / hydrator-validator
支持原始数据验证的 hydrator 验证
2.0.1
2024-08-06 12:18 UTC
Requires
- php: ^8.0
- yiisoft/hydrator: ^1.0
- yiisoft/validator: ^1.0|^2.0
Requires (Dev)
- maglnet/composer-require-checker: ^4.4
- phpunit/phpunit: ^9.5
- rector/rector: ^1.0.0
- roave/infection-static-analysis-plugin: ^1.16
- spatie/phpunit-watcher: ^1.23
- vimeo/psalm: ^4.30|^5.11
- yiisoft/test-support: ^3.0
This package is auto-updated.
Last update: 2024-09-20 07:49:38 UTC
README
Yii 验证 hydrator
该包提供了一个 hydrator,它还执行 验证,包括原始数据。当输入数据来自用户,并且需要验证然后将其放入 DTO 时,它非常有用。
要求
- PHP 8.0 或更高版本。
安装
该包可以使用 Composer 安装
composer require yiisoft/hydrator-validator
一般用法
验证 hydrator 是 hydrator 的装饰器,允许验证
- 使用
Validate
PHP 属性标记的属性的原始数据; - 创建或填充对象后的对象。
要使用它,正在验证的对象必须实现 ValidatedInputInterface
。您可以使用 ValidatedInputTrait
来轻松创建此类对象。对象的原始值验证规则由 Validate
PHP 属性定义。
对象示例
use Yiisoft\Hydrator\Validator\Attribute\Validate; use Yiisoft\Hydrator\Validator\ValidatedInputInterface; use Yiisoft\Hydrator\Validator\ValidatedInputTrait; use Yiisoft\Validator\Rule\Email; use Yiisoft\Validator\Rule\Required; final class InputDto implements ValidatedInputInterface { use ValidatedInputTrait; #[Email] private string $email; #[Validate(new Required())] private string $name; }
可以通过 getValidationResult()
方法获取验证结果。有关进一步处理结果的说明,请参阅相应的 验证器指南部分。
验证 hydrator 使用示例
use Psr\Http\Message\RequestInterface; use Yiisoft\Hydrator\Validator\ValidatingHydrator; public function actionEdit(RequestInterface $request, ValidatingHydrator $hydrator): ResponseInterface { $data = $request->getParsedBody(); $inputDto = $hydrator->create(InputDto::class, $data); if (!$inputDto->getValidationResult()->isValid()) { // Validation didn't pass :( } // Everything is fine. You can use $inputDto now. }
文档
如果您需要帮助或有问题,Yii 论坛 是一个不错的选择。您还可以查看其他 Yii 社区资源。
许可
Yii 验证 hydrator 是自由软件。它根据 BSD 许可证的条款发布。有关更多信息,请参阅 LICENSE
。
由 Yii 软件公司 维护。