PHPackages                             simonisme/validator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Validation &amp; Sanitization](/categories/validation)
4. /
5. simonisme/validator

ActiveLibrary[Validation &amp; Sanitization](/categories/validation)

simonisme/validator
===================

2.5.1(8y ago)0271MITPHPPHP &gt;=7.0.0

Since Jul 15Pushed 8y ago1 watchersCompare

[ Source](https://github.com/SimonIsMe/Validator)[ Packagist](https://packagist.org/packages/simonisme/validator)[ Docs](https://github.com/SimonIsMe/Validator)[ RSS](/packages/simonisme-validator/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (10)Dependencies (1)Versions (11)Used By (0)

Validators
==========

[](#validators)

How to use one validator?
-------------------------

[](#how-to-use-one-validator)

```
$validator = new IsEmailValidator();
$result = $validator->valid('email@gmail.com');

//  $result contains 0 when evrything is ok
//  or value > 1 otherwise
```

How to check value with many validators?
----------------------------------------

[](#how-to-check-value-with-many-validators)

`validThroughAllValidators()` method checks given value in ALL validators.

```
$collection = new ValidatorsCollection(
    [
        new IsNotNullValidator(),
        new IsEmailValidator(),
    ]
);

$result = $collection->validThroughAllValidators('email@gmail.com');

$result->isValid();     // returns true if value is passed thought all validators
$result->errors();      // returns array of error numbers for each of not-passed validators
```

`validToFirstError()` method checks given value in all validators TO FIRST FAIL.

```
$collection = new ValidatorsCollection(
    [
        new IsNotNullValidator(),
        new IsEmailValidator(),
    ]
);

$result = $collection->validToFirstError('email@gmail.com');

$result->isValid();     // returns true if value is passed thought all validators
$result->errors();      // returns array of error numbers (in this case there will be only single element in array) for each of not-passed validators
```

How to check array of values?
-----------------------------

[](#how-to-check-array-of-values)

You can create array full of validators. This array can contain nested validators arrays:

```
$validators = [
    "email" => new IsEmailValidator(),
    "age" => new IsNumberValidator()
];
```

This $validators array can be used to validate $data array:

```
$data = [
    "email" => "incorrect email address",
    "age" => 35
];

$arrayValidator = mew ArrayValidator();
$result = $arrayValidator->validateArray($validators, $data);
```

`$result` variable contains `ValidationResult` objects. `ValidationResult::errors()` returns nested array with error codes.

For more example look into ./tests/unit/ArrayValidatorTest.php

LIST OF VALIDATORS
------------------

[](#list-of-validators)

- IsBoolValidator
- IsDateTimeValidator
- IsDateValidator
- IsEmailValidator
- IsIntegerValidatorTest
- IsNotNullValidator
- IsNullValidator
- IsNumberEqualValidator
- IsNumberGreaterOrEqualValidator
- IsNumberGreaterThanValidator
- IsNumberInExclusiveRangeValidator
- IsNumberInInclusiveRangeValidator
- IsNumberLessOrEqualValidator
- IsNumberLessThanValidator
- IsNumberValidator
- IsSetValidator
- IsStringValidator
- IsTimeValidator
- IsUrlValidator
- IsValueFromSetValidatorTest
- StringLengthValidator
- SetValidator

License
-------

[](#license)

MIT ([https://en.wikipedia.org/wiki/MIT\_License](https://en.wikipedia.org/wiki/MIT_License))

###  Health Score

29

—

LowBetter than 57% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~7 days

Recently: every ~2 days

Total

10

Last Release

3208d ago

Major Versions

1.2.0 → 2.0.02017-09-09

### Community

Maintainers

![](https://www.gravatar.com/avatar/c520d5b243ca9df614d1fd90b62de019d15d69d26fcc2d81d0f8b324d1febbc4?d=identicon)[SimonIsMe](/maintainers/SimonIsMe)

---

Top Contributors

[![SimonIsMe](https://avatars.githubusercontent.com/u/750530?v=4)](https://github.com/SimonIsMe "SimonIsMe (68 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/simonisme-validator/health.svg)

```
[![Health](https://phpackages.com/badges/simonisme-validator/health.svg)](https://phpackages.com/packages/simonisme-validator)
```

###  Alternatives

[chaoswey/taiwan-id-validator

台灣身分證、統一編號驗證

319.9k](/packages/chaoswey-taiwan-id-validator)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
