Skip to content

lavibi/popoya

Repository files navigation

Popoya

Popoya -> Poppoya

A simple PHP validator library.

Build Status Scrutinizer Code Quality Code Coverage

Single Validator

Single validator

use Lavibi\Popoya;

$sameValidator = new Popoya\Same();

$sameValidator->setOptions['
    'compared_value' => 5
'];

$sameValidator->isValid(5);

Options can be added via readable method

use Lavibi\Popoya;

$sameValidator = new Popoya\Same();

$sameValidator->sameAs(5); // set options compared_value = 5

$sameValidator->isValid(5);

Validator chain

Validate value with more than one validator

$chainValidator = new Popoya\ValidatorChain();

$chainValidator->addValidator((new Popoya\Same())->setOptions(...));
$chainValidator->addValidator((new Popoya\NotSame())->setOptions(...));

$chainValidator->isValid(5);

Validator

Full validator for dataset like form data, API params

$validator = new Popoya\Validator();

$validator->isRequired('username')->maxLenght(20);
$validator->isRequired('password')->lenght(30, 50);
$validator->isOptional('email')->isEmail();
$validator->isOptional('avatar')->isUpload()->isImage();

// PSR7 post request
$validator->isValid(array_merge(
    $request->getParsedBody(),
    $request->getUploadedFiles()
));