kakaprodo / custom-data
A Laravel package that wraps function arguments together into a single CustomData class allowing separate processing and validation for each argument.
Installs: 3 406
Dependents: 4
Suggesters: 0
Security: 0
Stars: 7
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: >=7.0
- laravel/framework: >=7.0
This package is auto-updated.
Last update: 2024-10-12 15:17:59 UTC
README
Official Documentation
A Laravel package that wraps function arguments together into a single CustomData class allowing separate processing and validation for each argument.
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']) ]; } }
And then call it this way:
CreateUserData::make([ 'name' => 'kakaprodo', 'email' => 'example@gmail.com', 'password' => 'is_unique_pass', 'sexe' => 'M' ]);
And if you like to decouple your code with small classes called Action , then you are at the right place:
class CreateUserAction extends CustomActionBuilder { public function handle(CreateUserData $data) { return $data->onlyValidated(); } }
And then we call our action this way:
CreateUserAction::process([ 'name' => 'kakaprodo', 'email' => 'example@gmail.com', 'password' => 'is_unique_pass', 'sexe' => 'M' ]);
Features
- Combine several function arguments into one class called CustomData
- Validate each argument a little bit the way TypeScript does it in Javascript
- Support the definition of Laravel FormValidation rules
- Support Action classes in which CustomData can be injected
- Support The Ability to Queue Action class
- Support helper command to generate Action and CustomData classes
You can find here the Official Documentation