saritasa/laravel-fluent-validation

Laravel 请求验证规则的流畅构建器集合

1.3.0 2024-01-08 12:49 UTC

This package is auto-updated.

Last update: 2024-09-08 14:23:20 UTC


README

PHP Unit PHP CodeSniffer codecov Release PHPv Downloads

使用流畅风格的语法构建 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)

示例

内联文档

Inline documentation

智能感知

Intelisence

自定义验证规则

您还可以使用 自定义声明的验证

$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

您的规则构建器的根。

贡献

  1. 创建分叉,检出它
  2. 像往常一样本地开发。 代码必须遵循 PSR-1PSR-2 - 运行 PHP_CodeSniffer 以确保代码遵循风格指南
  3. 用单元测试覆盖添加的功能 并运行 PHPUnit 以确保所有测试通过
  4. 更新 README.md 以描述新功能或更改
  5. 将更改描述添加到 CHANGES.md 文件。使用 语义化版本 约定来确定下一个版本号。
  6. 准备好后,创建拉取请求

创建快捷方式

如果您已安装 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 - 依次调用上述 installcstest 任务 - 项目将构建、通过代码检查器检查,并通过单个命令进行测试

资源