Composite Validation Rules

News

June 25th, 2019

Composite Validation Rules

Validation Composite is a package by Paul Klimov that allows uniting several validation rules into a single one for easy reuse.

Here are a few simple examples that will help visualize how this package works. Let’s say you want to centralize your password or avatar rules into one composite rule:

<?php
 
namespace App\Rules;
 
use Illuminatech\Validation\Composite\CompositeRule;
 
class PasswordRule extends CompositeRule
{
protected function rules(): array
{
return ['string', 'min:8', 'max:200'];
}
}
 
class AvatarRule extends CompositeRule
{
protected function rules(): array
{
return ['file', 'mimes:png,jpg,jpeg', 'max:1024'];
}
}

Example usage of these composite rules looks like this in a controller:

public function update(Request $request)
{
$validatedData = $request->validate([
'password' => ['required', new PasswordRule],
'avatar' => ['required', new AvatarRule],
// ...
]);
 
// ...
}

You can learn more about this package, get full installation instructions, and view the source code on GitHub at illuminatech/validation-composite.

Filed in:

Paul Redmond

Full stack web developer. Author of Lumen Programming Guide and Docker for PHP Developers.