PHPackages                             dsheiko/validate - 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. dsheiko/validate

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

dsheiko/validate
================

High-performance, secure validation library for Design by Contract programming. Validate primitive and complex types with chainable validators, contract-based validation, and comprehensive security features.

v1.2.0(3w ago)152213[1 issues](https://github.com/dsheiko/validate/issues)MITPHPPHP &gt;=7.0.0

Since Dec 8Pushed 3w ago2 watchersCompare

[ Source](https://github.com/dsheiko/validate)[ Packagist](https://packagist.org/packages/dsheiko/validate)[ Docs](https://github.com/dsheiko/validate)[ RSS](/packages/dsheiko-validate/feed)WikiDiscussions master Synced 2w ago

READMEChangelogDependencies (8)Versions (5)Used By (0)

Dsheiko\\Validate
=================

[](#dsheikovalidate)

[![Latest Stable Version](https://camo.githubusercontent.com/4d9aff7ead0af3ad042507c1aa8e5eb558f14690fb9eba6622993864ea654693/68747470733a2f2f706f7365722e707567782e6f72672f64736865696b6f2f76616c69646174652f762f737461626c65)](https://packagist.org/packages/dsheiko/validate)[![Total Downloads](https://camo.githubusercontent.com/a07ee01c2dc0d57261d3a988b14a65ca1ef0f84d4832b3f9a7c416800797d8f9/68747470733a2f2f706f7365722e707567782e6f72672f64736865696b6f2f76616c69646174652f646f776e6c6f616473)](https://packagist.org/packages/dsheiko/validate)[![License](https://camo.githubusercontent.com/4a7a6ddddfda5bbb35be3447659f09bc80d23572475a1aef833052e20daac347/68747470733a2f2f706f7365722e707567782e6f72672f64736865696b6f2f76616c69646174652f6c6963656e7365)](https://packagist.org/packages/dsheiko/validate)

Extendable, high-performance validation library for testing primitive and complex types against a contract. Designed for Design by Contract programming and comprehensive input validation in PHP applications.

- [Installation](#installation)
- [Requirements](#requirements)
- [Key Features](#key-features)
- [Quick Start](#quick-start)
- [Security](#security)
- [Performance](#performance)
- [Usage](#usage)
- [Examples](#examples)
- [Contributing](#contributing)

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

[](#installation)

Require as a composer dependency:

```
composer require "dsheiko/validate"
```

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

[](#requirements)

- PHP &gt;= 7.0.0
- No external dependencies

Key Features
------------

[](#key-features)

### 🎯 Core Capabilities

[](#-core-capabilities)

- **Validators are dead simple to extend** - Create custom validators by implementing ValidateInterface
- **Design by Contract support** - Validate preconditions and postconditions with Validate::contract()
- **Validator chaining** - Chain multiple validators for fluent validation syntax
- **Direct assertion access** - Use validators as direct assertions in your code
- **Complex type validation** - Support for nested arrays, associative arrays, and key-value structures
- **Exception-based error handling** - Specific exception types for different validation failures

### 🔐 Security Features (v1.2.0+)

[](#-security-features-v120)

- **Credit card validation** - Implements Luhn algorithm for genuine card validation
- **ReDoS protection** - Length constraints prevent regular expression denial of service attacks
- **Email length validation** - RFC 5321 compliant length constraints
- **Input sanitization** - Validators properly handle edge cases and malicious input

### ⚡ Performance Features

[](#-performance-features)

- **Factory caching** - 30-50% faster validation chains
- **Optimized validators** - 10-15% faster UUID and string validation
- **Efficient loops** - Removed closure overhead for 5-10% improvement
- **Minimal overhead** - Fast validation suitable for high-traffic applications

Quick Start
-----------

[](#quick-start)

```
