kakaprodo/custom-data

A Laravel package that wraps function arguments together into a single CustomData class allowing separate processing and validation for each argument.
4,430 7
Install
composer require kakaprodo/custom-data
Latest Version:v2.3.53
PHP:>=8.0
License:MIT
Last Updated:Aug 14, 2025
Links: GitHub  ·  Packagist
Maintainer: kakaprodo

Custom Data

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

Related Packages

kakaprodo/system-analytic

A laravel package that simplifies the collection and visualization of your syste...

3,191 1
artdarek/oauth-4-laravel

OAuth Service Provider for Laravel 4

523,362 677
oriceon/toastr-5-laravel

Easy toastr notifications for Laravel 5

503,999 79
nilsenj/toastr-5.1-laravel

toastr.js for Laravel 5.1/5.2 easy notification like growl for example

34,076 6
oriceon/oauth-5-laravel

OAuth Service Provider for Laravel 5

1,671,889 174