Reusable validation building blocks for Utopia projects.
This package exposes a consistent API for common HTTP-oriented validation concerns such as input sanitisation, URL checks, IP validation, hostname filtering, lists enforcement, and more.
composer require utopia-php/validators
use Utopia\Validator\Text;
use Utopia\Validator\Range;
$username = new Text(20, min: 3);
$age = new Range(min: 13, max: 120);
if (! $username->isValid($input['username'])) {
throw new InvalidArgumentException($username->getDescription());
}
if (! $age->isValid($input['age'])) {
throw new InvalidArgumentException($age->getDescription());
}
Validators expose a predictable contract:
isValid(mixed $value): bool
– core validation rulegetDescription(): string
– human readable rule summarygetType(): string
– expected PHP type (string, integer, array, ...)isArray(): bool
– hint whether the validator expects an array input
For advanced flows combine validators with Multiple
, AnyOf
, AllOf
, NoneOf
, or wrap checks with helpers such as Nullable
.
AllOf
,AnyOf
,NoneOf
,Multiple
– composition helpersArrayList
,Assoc
,Nullable
,WhiteList
,Wildcard
Boolean
,Integer
,FloatValidator
,Numeric
,Range
Domain
,Host
,Hostname
,IP
,URL
HexColor
,JSON
,Text
Run the static analysis and test suites from the project root:
composer check
composer test
This project is released under the MIT License.