kakaprodo/custom-data

一个Laravel包,将函数参数封装成一个单独的CustomData类,允许对每个参数进行单独的处理和验证。

2.3.3 2024-05-12 14:24 UTC

README

官方文档

一个Laravel包,将函数参数封装成一个单独的CustomData类,允许对每个参数进行单独的处理和验证。

class CreateUserData extends CustomData
{
    protected function expectedProperties(): array
    {
        return [
            'name' => $this->dataType()->string(),
            'email' => $this->dataType()->string(),
            'password' => $this->dataType()->string(),
            'age?' => $this->dataType()->string(),
            'sexe' => $this->dataType()->inArray(['M','F'])
        ];
    }
}

然后可以这样调用它

CreateUserData::make([
    'name' => 'kakaprodo',
    'email' => 'example@gmail.com',
    'password' => 'is_unique_pass',
    'sexe' => 'M'
]);

如果你喜欢将代码与名为Action的小类解耦,那么你就在正确的位置

class CreateUserAction extends CustomActionBuilder
{
   public function handle(CreateUserData $data)
   {
       return $data->onlyValidated();
   }
}

然后我们这样调用我们的操作

CreateUserAction::process([
    'name' => 'kakaprodo',
    'email' => 'example@gmail.com',
    'password' => 'is_unique_pass',
    'sexe' => 'M'
]);

特性

  • 将多个函数参数合并成一个名为CustomData的类
  • 以TypeScript在JavaScript中执行的方式对每个参数进行一点验证
  • 支持定义Laravel FormValidation规则
  • 支持注入CustomData的Action类
  • 支持队列Action类的能力
  • 支持生成Action和CustomData类的辅助命令

您可以在官方文档中找到更多内容