PHPackages                             mezuno/php-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. mezuno/php-validator

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

mezuno/php-validator
====================

Php data validator

1.1.0(2y ago)27proprietaryPHPPHP ^8.1

Since Sep 1Pushed 2y ago1 watchersCompare

[ Source](https://github.com/Mezuno/php-validator)[ Packagist](https://packagist.org/packages/mezuno/php-validator)[ RSS](/packages/mezuno-php-validator/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (3)Dependencies (1)Versions (3)Used By (0)

Rules Validator
===============

[](#rules-validator)

> Документация к RulesValidator

---

Оглавление

1. [Методы правил](#rulesMethods)
    - [required() и nullable()](#requiredAndNullable)
    - [min() и max()](#minAndMax)
    - [items()](#items)
    - [exists()](#exists)
    - [type()](#type)

---

###  Правила

[](#-правила)

На текущий момент (28.08.2023) существуют следующие правила для валидации:

КлассЗначениеВалидноIntRulesЦелочисленное... -1, 0, 1, ...FloatRulesДробное... -1.0, 0.0, 1 ...BoolRulesБулевоtrue, false, "true", "false", "on", "off", 1, 0, "1", "0"StringRulesСтрока"Some string"ArrayRulesМассив\[1, 2, "три"\]И производные правила

КлассЗначениеВалидноDateRulesДата и время"2023-08-03 11:38:06"PhoneRulesТелефон"+79998887766"EmailRulesПочта""ExistsRulesСуществует в БДЛюбое поле, если существует в БД---

Методы правил
-----------------------------------------------------

[](#методы-правил)

### required() и nullable()

[](#required-и-nullable)

> У каждого правила существует минимум 2 метода: required() и nullable()

required() отвечает за обязательность поля

nullable() отвечает за обязательность и возможность поля быть null

Note

По умолчанию поле не обязательное

```
$rules = [
    'some_field' => IntRules::make()->required(),
    'another_field' => IntRules::make()->nullable(),
];
```

Warning

required() и nullable() взаимоисключающие правила
Это значит, что нельзя указывать и то и другое, иначе применится последнее

### min() и max()

[](#min-и-max)

> Все правила типа NumericRules имеют методы min() и max()

Эти методы принимают парамтером минимальное и максимальное значение поля соответственно

> Пример:

```
$rules = [
     'some_integer_field' => IntRules::make()->min(1)->max(3),
];
```

---

Также, у StringRules есть такие же методы, но имеют другое значение. Если в случае с NumericRules min() и max() обозначают конкретные значения, то в случае со строкой min() и max() обозначают ограничение на длину строки.

> Пример:

```
$rules = [
     'password' => StringRules::make()->min(8)->max(32),
];
```

### items()

[](#items)

> ArrayRules содержит метод items(), принимающий в себя правила валидации полей массива, или полей подмассивов

Метод items() у ArrayRules имеет два параметра: первый параметр - массив правил для валидации полей массива, второй - флаг $nested, который указывает на наличие вложенности

> Пример массива с одним обязательным полем:

```
$rules = [
     'some_array_field' => ArrayRules::make()->items([
         'some_array_item' => StringRules::make()->required(),
     ]),
];
```

Валидно:

```
{
  "some_array_field": {
    "some_nested_array_item": 2
  }
}
```

Невалидно:

```
{
  "some_another_array_field": [
    {
      "some_nested_array_item": 2
    }
  ]
}
```

---

> Пример массива с валидацией вложенных массивов

> **Note**Второй параметр при валидации вложенных массивов - true

```
$rules = [
     'some_array_field' => ArrayRules::make()->items([
         'some_nested_array_item' => IntRules::make()->required(),
     ], true),
];
```

Валидно:

```
{
  "some_another_array_field": [
    {
      "some_nested_array_item": 2
    }
  ]
}
```

Невалидно:

```
{
  "some_array_field": {
    "some_nested_array_item": 2
  }
}
```

### exists()

[](#exists)

Принимает в себя класс репоизтория первым параметром, и метод этого репозитория вторым параметром.

> Пример:

```
$rules = [
  'card_barcode' => StringRules::make()->exists(CardRepository::class, 'findByBarcode'),
];
```

Метод validationExceptions()
----------------------------------------------------------------------------

[](#метод-validationexceptions)

> Метод validationExceptions() нужен для установки кастомных сообщений на ошибки валидации

Чтобы задать кастомный Exception для какого-либо правила, нужно просто указать в возвращаемом массиве ключ поля, ключ правила и сам Exception

> Пример:

```
$messages = [
     'field.required' => 'Some custom message for required',
     'field.type' => 'Some custom message for type'
     'field.min' => 'Some custom message for min'
     'field.max' => 'Some custom message for max'
     'field.exists' => 'Some custom message for exists'

     'phone_field.phone' => 'Some custom message for phone';

     'email_field.email' => 'Some custom message for email';
];
```

В данном примере при непереданном в запросе поле field будет выброшен указанный Exception.

---

Также, в можно указать кастомные Exception для элементов массивов, следующим образом:

```
$rules = [
     'product.items.price' => 'Item product[price] required.';
];
```

Если необходимо добавить кастомное сообщение для элемента вложенного массива, используйте ключ nested\_items:

```
$rules = [
     'products.nested_items.price' => 'Item products[][price] required.';
];
```

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 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 ~12 days

Total

3

Last Release

966d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/106b60138b511966f3756f2a3b094ce2b9f18ff778c6fdf63612243a5ebfbf87?d=identicon)[meznuo](/maintainers/meznuo)

---

Top Contributors

[![Mezuno](https://avatars.githubusercontent.com/u/82967817?v=4)](https://github.com/Mezuno "Mezuno (3 commits)")

### Embed Badge

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

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

###  Alternatives

[webmozart/assert

Assertions to validate method input/output with nice error messages.

7.6k894.0M1.2k](/packages/webmozart-assert)[bensampo/laravel-enum

Simple, extensible and powerful enumeration implementation for Laravel.

2.0k15.9M104](/packages/bensampo-laravel-enum)[swaggest/json-schema

High definition PHP structures with JSON-schema based validation

48612.5M73](/packages/swaggest-json-schema)[stevebauman/purify

An HTML Purifier / Sanitizer for Laravel

5325.6M19](/packages/stevebauman-purify)[ashallendesign/laravel-config-validator

A package for validating your Laravel app's config.

217905.3k5](/packages/ashallendesign-laravel-config-validator)[crazybooot/base64-validation

Laravel validators for base64 encoded files

1341.9M8](/packages/crazybooot-base64-validation)

PHPackages © 2026

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