saritasa / laravel-fluent-validation
Laravel 请求验证规则的流畅构建器集合
1.3.0
2024-01-08 12:49 UTC
Requires
- php: >=7.1
- illuminate/database: ^5.4 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0
- illuminate/support: ^5.4 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0
- illuminate/validation: ^5.4 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0
- propaganistas/laravel-phone: ^3.0 || ^4.0 || ^5.0
- saritasa/php-common: ^1.0
Requires (Dev)
- mockery/mockery: ^1.0
- phpunit/phpunit: ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0
- squizlabs/php_codesniffer: ^3.0
README
使用流畅风格的语法构建 Laravel 验证规则
示例:
$rules = [ 'id' => Rule::int()->required(), 'name' => Rule::string()->required()->minLength(3)->toString(), 'email' => Rule::string()->required()->email()->toArray(), 'role_id' => Rule::modelExists(Role::class), 'salary' => Rule::int()->when($isPHPDeveloper, function($ruleWhenTrue) { return $ruleWhenTrue->min(1000000); }, function($ruleWhenFalse) { return $ruleWhenFalse->max(1000); } ) ]
优点
- 强类型
- 对可用的规则和参数的智能感知(如果你使用像 PHPStorm 这样的智能 IDE)
- 关于拼写错误的提示(如果你使用像 PHPStorm 这样的智能 IDE)
示例
内联文档
智能感知
自定义验证规则
您还可以使用 自定义声明的验证
$rules = [ ... => Rule::custom('foo') ]
安装
安装 saritasa/laravel-fluent-validation
包
$ composer require saritasa/laravel-fluent-validation
如果您使用 Laravel 5.4 或更低版本,或者 5.5+ 且禁用了 包发现,请在 config/app.php
中添加 FluentValidationServiceProvider
'providers' => array( // ... Saritasa\Laravel\Validation\FluentValidationServiceProvider::class, )
注意:您可以省略服务提供程序的注册,但此时必须在每个构建器上调用 ->toString() 或 ->toArray()。如果注册了服务提供程序,则无需手动将规则转换为字符串或数组,并且可以删除 'providers' 数组中的默认 Laravel 的 Illuminate\Validation\ValidationServiceProvider::class。
可用类
\Saritasa\Laravel\Validation\Rule
您的规则构建器的根。
贡献
- 创建分叉,检出它
- 像往常一样本地开发。 代码必须遵循 PSR-1, PSR-2 - 运行 PHP_CodeSniffer 以确保代码遵循风格指南
- 用单元测试覆盖添加的功能 并运行 PHPUnit 以确保所有测试通过
- 更新 README.md 以描述新功能或更改
- 将更改描述添加到 CHANGES.md 文件。使用 语义化版本 约定来确定下一个版本号。
- 准备好后,创建拉取请求
创建快捷方式
如果您已安装 GNU Make,则可以使用以下快捷方式
make cs
(代替php vendor/bin/phpcs
)- 使用 PHP_CodeSniffer 运行静态代码分析以检查代码风格make csfix
(代替php vendor/bin/phpcbf
)- 自动修复代码风格违规,如果可能的话(例如,PSR-2 代码格式化违规)make test
(代替php vendor/bin/phpunit
)- 使用 PHPUnit 运行测试make install
- 代替composer install
make all
或不带参数的make
- 依次调用上述 install、cs、test 任务 - 项目将构建、通过代码检查器检查,并通过单个命令进行测试