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

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

impulsephp/validator
====================

A lightweight and extensible validation engine for ImpulsePHP components. Provides form validation rules and unified syntax for server-side validation.

v1.0.0-beta(11mo ago)04MITPHPPHP &gt;=8.2

Since Aug 3Pushed 2mo agoCompare

[ Source](https://github.com/ImpulsePHP/validator)[ Packagist](https://packagist.org/packages/impulsephp/validator)[ RSS](/packages/impulsephp-validator/feed)WikiDiscussions main Synced today

READMEChangelogDependenciesVersions (2)Used By (0)

ImpulsePHP Validator
====================

[](#impulsephp-validator)

`impulsephp/validator` est le moteur de validation serveur d’ImpulsePHP. Il propose un ensemble de règles prêtes à l’emploi, une API simple à consommer depuis le code métier et une intégration optionnelle avec `impulsephp/translation` pour retourner des messages localisés.

Ce que fait le package
----------------------

[](#ce-que-fait-le-package)

- valide une valeur contre une ou plusieurs règles ;
- retourne la première erreur ou la liste complète des erreurs ;
- accepte une syntaxe compacte de type `required|email|min_length:8` ;
- permet d’enregistrer des règles personnalisées ;
- peut déléguer les messages à un traducteur.

Prérequis
---------

[](#prérequis)

- PHP 8.2 ou supérieur.

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

[](#installation)

```
composer require impulsephp/validator
```

Si votre application ne gère pas l’auto-découverte, ajoutez `Impulse\Validator\ValidatorProvider` à votre configuration.

Exemple d’usage complet
-----------------------

[](#exemple-dusage-complet)

```
use Impulse\Validator\Validator;

$validator = new Validator();

$emailErrors = $validator->validate('email', 'adresse-invalide', 'required|email');
$passwordError = $validator->validateField('password', '123', 'required|min_length:8');
$allPasswordErrors = $validator->validateFieldAllErrors(
    'password',
    '123',
    'required|min_length:8'
);
```

Exemple sur un formulaire :

```
$errors = [];

$errors['email'] = $validator->validateField('email', $_POST['email'] ?? '', 'required|email');
$errors['age'] = $validator->validateField('age', $_POST['age'] ?? '', 'required|integer|min:18');

$errors = array_filter($errors);

if ($errors === []) {
    // Continuer le traitement.
}
```

Utilisation via le conteneur
----------------------------

[](#utilisation-via-le-conteneur)

Le provider enregistre `Impulse\Validator\Contract\ValidatorInterface` dans le conteneur.

```
use Impulse\Validator\Contract\ValidatorInterface;

$validator = $container->get(ValidatorInterface::class);
```

Traduction des messages
-----------------------

[](#traduction-des-messages)

Si `Impulse\Translation\Contract\TranslatorInterface` est présent dans le conteneur, le provider le branche automatiquement au validateur et enregistre le namespace `validator` pour les messages par défaut du package.

Le validateur tentera alors de résoudre des clés comme `validation.required` puis `validator::validation.required`.

Règles disponibles
------------------

[](#règles-disponibles)

Le package enregistre notamment :

- `required`
- `min_length`
- `length`
- `email`
- `numeric`
- `integer`
- `decimal`
- `min`
- `max`
- `date`
- `date_after`
- `date_before`
- `time`
- `url`
- `phone`
- `regex`
- `in`
- `choices`
- `nullable`
- `array`
- `min_count`
- `max_count`
- `file`
- `image`
- `max_file_size`
- `mime`

Documentation complémentaire
----------------------------

[](#documentation-complémentaire)

Des guides plus détaillés sont disponibles dans `docs/` :

- `docs/installation.md`
- `docs/usage.md`
- `docs/custom_rules.md`
- `docs/translating_messages.md`

Aller plus loin
---------------

[](#aller-plus-loin)

`impulsephp/validator` s’intègre naturellement avec :

- `impulsephp/translation` pour localiser les erreurs ;
- `impulsephp/ui` pour la validation de composants de formulaire.

Tests
-----

[](#tests)

```
composer test
```

Licence
-------

[](#licence)

MIT

###  Health Score

30

—

LowBetter than 62% of packages

Maintenance69

Regular maintenance activity

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity35

Early-stage or recently created project

 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

Unknown

Total

1

Last Release

334d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/39504941?v=4)[Pixelee](/maintainers/Pixelee)[@Pixelee](https://github.com/Pixelee)

---

Top Contributors

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

### Embed Badge

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

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

PHPackages © 2026

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