PHPackages                             yiisoft/hydrator-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. [Framework](/categories/framework)
4. /
5. yiisoft/hydrator-validator

ActiveLibrary[Framework](/categories/framework)

yiisoft/hydrator-validator
==========================

Validating hydrator with raw data validation support

2.0.2(6mo ago)14116.0k—0.7%3[2 issues](https://github.com/yiisoft/hydrator-validator/issues)[2 PRs](https://github.com/yiisoft/hydrator-validator/pulls)2BSD-3-ClausePHPPHP 8.0 - 8.5CI passing

Since Feb 2Pushed 1w ago12 watchersCompare

[ Source](https://github.com/yiisoft/hydrator-validator)[ Packagist](https://packagist.org/packages/yiisoft/hydrator-validator)[ Docs](https://www.yiiframework.com/)[ GitHub Sponsors](https://github.com/sponsors/yiisoft)[ OpenCollective](https://opencollective.com/yiisoft)[ RSS](/packages/yiisoft-hydrator-validator/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (4)Dependencies (9)Versions (8)Used By (2)

 [ ![Yii](https://camo.githubusercontent.com/8317c17418b39410a660f5149071d26c5023c0d5fb2b7ebb771324812f666d73/68747470733a2f2f796969736f66742e6769746875622e696f2f646f63732f696d616765732f7969695f6c6f676f2e737667) ](https://github.com/yiisoft)

Yii Validating Hydrator
=======================

[](#yii-validating-hydrator)

[![Latest Stable Version](https://camo.githubusercontent.com/d4d5bd0b6cb38e3e185cbb75c03545ea1af8da477cc34ed12649f684c662ff54/68747470733a2f2f706f7365722e707567782e6f72672f796969736f66742f6879647261746f722d76616c696461746f722f76)](https://packagist.org/packages/yiisoft/hydrator-validator)[![Total Downloads](https://camo.githubusercontent.com/aab8a18aba539e2842efa95a2ef6f6fa73b1bfe622cfd8be3ebfc51abc2b7173/68747470733a2f2f706f7365722e707567782e6f72672f796969736f66742f6879647261746f722d76616c696461746f722f646f776e6c6f616473)](https://packagist.org/packages/yiisoft/hydrator-validator)[![Build status](https://github.com/yiisoft/hydrator-validator/actions/workflows/build.yml/badge.svg)](https://github.com/yiisoft/hydrator-validator/actions/workflows/build.yml)[![codecov](https://camo.githubusercontent.com/fb111347b60873136ac4e986afadaa2bfcbddd4dcb206ffaeac0004df1a8f522/68747470733a2f2f636f6465636f762e696f2f67682f796969736f66742f6879647261746f722d76616c696461746f722f67726170682f62616467652e7376673f746f6b656e3d76664c74574e59376e75)](https://codecov.io/gh/yiisoft/hydrator-validator)[![Mutation testing badge](https://camo.githubusercontent.com/88ad844713536908c4d6105e63e4d7fd3a6748bf80d041f523cb2877aec22d7c/68747470733a2f2f696d672e736869656c64732e696f2f656e64706f696e743f7374796c653d666c61742675726c3d687474707325334125324625324662616467652d6170692e737472796b65722d6d757461746f722e696f2532466769746875622e636f6d253246796969736f66742532466879647261746f722d76616c696461746f722532466d6173746572)](https://dashboard.stryker-mutator.io/reports/github.com/yiisoft/hydrator-validator/master)[![static analysis](https://github.com/yiisoft/hydrator-validator/workflows/static%20analysis/badge.svg)](https://github.com/yiisoft/hydrator-validator/actions?query=workflow%3A%22static+analysis%22)[![type-coverage](https://camo.githubusercontent.com/c2072a97043403fd8ec720fd92956e6a66c37149869d4e4dc389c981c8d53640/68747470733a2f2f73686570686572642e6465762f6769746875622f796969736f66742f6879647261746f722d76616c696461746f722f636f7665726167652e737667)](https://shepherd.dev/github/yiisoft/hydrator-validator)[![psalm-level](https://camo.githubusercontent.com/93bd7a559df7418d9f3fb8a4e97d10801bd200ed9707a70df143d7869683cef8/68747470733a2f2f73686570686572642e6465762f6769746875622f796969736f66742f6879647261746f722d76616c696461746f722f6c6576656c2e737667)](https://shepherd.dev/github/yiisoft/hydrator-validator)

The package provides a [hydrator](https://github.com/yiisoft/hydrator)that also does [validation](https://github.com/yiisoft/validator), including raw data. It's useful when input data comes from a user, and you need to validate it and then put it into DTOs.

Requirements
------------

[](#requirements)

- PHP 8.0 - 8.5.

Installation
------------

[](#installation)

The package could be installed with [Composer](https://getcomposer.org):

```
composer require yiisoft/hydrator-validator
```

General usage
-------------

[](#general-usage)

Validating hydrator is a decorator for [hydrator](https://github.com/yiisoft/hydrator) that allows to validate:

- raw data of properties marked with `Validate` PHP attribute;
- an object after creating or populating it.

To use it, the object being validated must implement `ValidatedInputInterface`. You can use `ValidatedInputTrait` to easily create such object. The validation rules for raw values of the object are defined with `Validate` PHP attribute.

Example of object:

```
use Yiisoft\Hydrator\Validator\Attribute\Validate;
use Yiisoft\Hydrator\Validator\ValidatedInputInterface;
use Yiisoft\Hydrator\Validator\ValidatedInputTrait;
use Yiisoft\Validator\Rule\Email;
use Yiisoft\Validator\Rule\Required;

final class InputDto implements ValidatedInputInterface
{
    use ValidatedInputTrait;

    #[Email]
    private string $email;

    #[Validate(new Required())]
    private string $name;
}
```

Validation result could be obtained via `getValidationResult()` method. For further working with result, refer to corresponding [validator's guide section](https://github.com/yiisoft/validator/blob/master/docs/guide/en/result.md).

Validating hydrator usage example:

```
use Psr\Http\Message\RequestInterface;
use Yiisoft\Hydrator\Validator\ValidatingHydrator;

public function actionEdit(RequestInterface $request, ValidatingHydrator $hydrator): ResponseInterface
{
    $data = $request->getParsedBody();
    $inputDto = $hydrator->create(InputDto::class, $data);

    if (!$inputDto->getValidationResult()->isValid()) {
        // Validation didn't pass :(
    }

    // Everything is fine. You can use $inputDto now.
}
```

Documentation
-------------

[](#documentation)

- [Internals](docs/internals.md)

If you need help or have a question, the [Yii Forum](https://forum.yiiframework.com/c/yii-3-0/63) is a good place for that. You may also check out other [Yii Community Resources](https://www.yiiframework.com/community).

License
-------

[](#license)

The Yii Validating Hydrator is free software. It is released under the terms of the BSD License. Please see [`LICENSE`](./LICENSE.md) for more information.

Maintained by [Yii Software](https://www.yiiframework.com/).

Support the project
-------------------

[](#support-the-project)

[![Open Collective](https://camo.githubusercontent.com/a2b15f8e2268d4e3842e00d41ff7a57cce2ad8bd8d8769c5dc4fa05a546a4f62/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4f70656e253230436f6c6c6563746976652d73706f6e736f722d3765616466313f6c6f676f3d6f70656e253230636f6c6c656374697665266c6f676f436f6c6f723d376561646631266c6162656c436f6c6f723d353535353535)](https://opencollective.com/yiisoft)

Follow updates
--------------

[](#follow-updates)

[![Official website](https://camo.githubusercontent.com/d6b0929173e28cc627430d2519ca1853466a70f37395877eaf4820cb3e1e1909/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f506f77657265645f62792d5969695f4672616d65776f726b2d677265656e2e7376673f7374796c653d666c6174)](https://www.yiiframework.com/)[![Twitter](https://camo.githubusercontent.com/d077c362ac639792171af8bc002ee827816733dfc0925f70b557e6d151022226/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f747769747465722d666f6c6c6f772d3144413146323f6c6f676f3d74776974746572266c6f676f436f6c6f723d314441314632266c6162656c436f6c6f723d3535353535353f7374796c653d666c6174)](https://twitter.com/yiiframework)[![Telegram](https://camo.githubusercontent.com/4e38dd12535575c39c65bea7119b95e663abb2d1f4e3d669a27bbda07ef603f0/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f74656c656772616d2d6a6f696e2d3144413146323f7374796c653d666c6174266c6f676f3d74656c656772616d)](https://t.me/yii3en)[![Facebook](https://camo.githubusercontent.com/48204e301b34b29b0815854544f04c337fc0692096cab35e9a1f8c53a42c2307/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f66616365626f6f6b2d6a6f696e2d3144413146323f7374796c653d666c6174266c6f676f3d66616365626f6f6b266c6f676f436f6c6f723d666666666666)](https://www.facebook.com/groups/yiitalk)[![Slack](https://camo.githubusercontent.com/1a3645ba1c97e6684d0349bc478201e1621ba0d3efad516d81035364d442bad7/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f736c61636b2d6a6f696e2d3144413146323f7374796c653d666c6174266c6f676f3d736c61636b)](https://yiiframework.com/go/slack)

###  Health Score

56

—

FairBetter than 97% of packages

Maintenance82

Actively maintained with recent releases

Popularity42

Moderate usage in the ecosystem

Community24

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 56.4% 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 ~227 days

Total

4

Last Release

199d ago

Major Versions

1.0.0 → 2.0.02024-03-06

PHP version history (2 changes)1.0.0PHP ^8.0

2.0.2PHP 8.0 - 8.5

### Community

Maintainers

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

![](https://www.gravatar.com/avatar/53e5ee1dedd50f71e4aeeac2929f786cdfb400359d4776e6cd806388d0d5df2c?d=identicon)[vjik](/maintainers/vjik)

---

Top Contributors

[![vjik](https://avatars.githubusercontent.com/u/525501?v=4)](https://github.com/vjik "vjik (22 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (6 commits)")[![luizcmarin](https://avatars.githubusercontent.com/u/67489841?v=4)](https://github.com/luizcmarin "luizcmarin (4 commits)")[![samdark](https://avatars.githubusercontent.com/u/47294?v=4)](https://github.com/samdark "samdark (3 commits)")[![arogachev](https://avatars.githubusercontent.com/u/8326201?v=4)](https://github.com/arogachev "arogachev (2 commits)")[![mspirkov](https://avatars.githubusercontent.com/u/63721828?v=4)](https://github.com/mspirkov "mspirkov (1 commits)")[![olegbaturin](https://avatars.githubusercontent.com/u/15981018?v=4)](https://github.com/olegbaturin "olegbaturin (1 commits)")

---

Tags

hydratorvalidatoryii3validationinput

###  Code Quality

TestsPHPUnit

Static AnalysisPsalm, Rector

Type Coverage Yes

### Embed Badge

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

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

###  Alternatives

[cakephp/cakephp

The CakePHP framework

8.9k19.5M1.8k](/packages/cakephp-cakephp)[milwad/laravel-validate

The Laravel-Validate package enhanced Laravel validation capabilities with custom rules and methods for simplified and efficient validation logic.

59646.9k1](/packages/milwad-laravel-validate)[yiisoft/validator

Yii Validator

167412.5k27](/packages/yiisoft-validator)[davidepastore/slim-validation

A slim middleware for validation based on Respect/Validation

173229.0k3](/packages/davidepastore-slim-validation)[cakephp/validation

CakePHP Validation library

44526.6k19](/packages/cakephp-validation)[yiisoft/app-api

Yii3 API project template

1041.8k](/packages/yiisoft-app-api)

PHPackages © 2026

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