codercms / form-request
轻量级的 FormRequest 实现,灵感来源于 Laravel 和 Symfony
1.0.2
2021-11-29 22:23 UTC
Requires
- php: >=7.4
- symfony/validator: ^5.0
Requires (Dev)
- phpunit/phpunit: ^8.5
This package is auto-updated.
Last update: 2024-09-29 05:35:56 UTC
README
轻量级的 FormRequest 实现,带有数据规范化。基于 symfony/validator。
在具有复杂验证规则的 10000 次迭代中的比较
- 比 Laravel FormRequest 快约 3.8 倍
- 比 Symfony Form 快约 9.7 倍
使用方法(查看测试用例获取更多示例)
<?php declare(strict_types=1); use Codercms\FormRequest\RequestNormalizer; use Codercms\FormRequest\ValueNormalizer; use Codercms\FormRequest\ValidationException; use Symfony\Component\Validator\Constraints as Assert; use Symfony\Component\Validator\Validation; class TestFormRequest extends \Codercms\FormRequest\FormRequest { protected function setupRules(): Assert\Collection { return new Assert\Collection( [ 'is_active' => new Assert\Optional( new Assert\Type('bool') ), ] ); } } $formRequest = new TestFormRequest( new RequestNormalizer(new ValueNormalizer()), Validation::createValidator() ); $data = [/* your incoming data here */]; try { $normalizedData = $formRequest->handle($data); } catch (ValidationException $e) { $errors = $e->getViolationList(); // handle errors here }