validation-ext

Attributes Validation Extension

validation-ext logo

GitHub Actions Workflow Status (main) Code Coverage Latest Version Supported PHP Versions Software License


Attributes Validation Extension is a Pydantic-inspired PHP library for validating data via type hints at lightning speed ⚡️

Prerequisites

We aim to support versions that haven’t reached their end-of-life.

How it works?

<?php

use function Attributes\Validation\validate;
use Attributes\Validation\BaseModel;

class User extends BaseModel
{
    public float|int $age;
    public ?DateTime $birthday;
}

$rawData = [
    'age' => 30,
    'birthday' => '1994-01-01T09:00:00+00:00',
];
$user = validate($rawData, new User());

var_dump($user->age);      // int(30)
var_dump($user->birthday); // object(DateTime) { ["date"] => string(26) "1994-01-01 09:00:00.000000", (...) }

Need to call a function?

<?php

use function Attributes\Validation\call;

function myFunction(User $user) {
    var_dump($user->age);      // int(30)
    var_dump($user->birthday); // object(DateTime) { ["date"] => string(26) "1994-01-01 09:00:00.000000", (...) }
}

call("myFunction", $rawData);

Installation

pie install attributes-php/validation

Attributes Validation Extension was created by André Gil and is open-sourced software licensed under the MIT license.