PHPackages                             bishalshrestha/fynix - 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. bishalshrestha/fynix

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

bishalshrestha/fynix
====================

A modern, extensible PHP library for validating primitive data types, files, nested objects, and arrays of objects with reusable and centralized validation rules.

v1.0.2(6mo ago)1468[7 issues](https://github.com/shrestha-bishal/fynix/issues)[1 PRs](https://github.com/shrestha-bishal/fynix/pulls)MITPHPPHP &gt;=8.0CI passing

Since Oct 8Pushed 4mo ago1 watchersCompare

[ Source](https://github.com/shrestha-bishal/fynix)[ Packagist](https://packagist.org/packages/bishalshrestha/fynix)[ Docs](https://fynixphp.netlify.app)[ Fund](https://www.buymeacoffee.com/shresthabishal)[ GitHub Sponsors](https://github.com/shrestha-bishal)[ RSS](/packages/bishalshrestha-fynix/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (3)DependenciesVersions (5)Used By (0)

Fynix - The Modern PHP Validation Engine [![logo](https://private-user-images.githubusercontent.com/95735295/498816528-e231643d-88f5-428b-a34a-43a906d2cb9c.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU0NDE2MjgsIm5iZiI6MTc3NTQ0MTMyOCwicGF0aCI6Ii85NTczNTI5NS80OTg4MTY1MjgtZTIzMTY0M2QtODhmNS00MjhiLWEzNGEtNDNhOTA2ZDJjYjljLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDA2VDAyMDg0OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWY1ZDBhZTE1NWUyM2QxNzQ2NzExNjc3ZDdjYzg0MWZkNDk0ZThlODNkZTQ1NjVlZDQ5NjMzNjkxOWU1Y2I4NDAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.UjY6JuBHTj_C-QRPN0iebswlJyafPgZyddlT58AClFQ)](https://private-user-images.githubusercontent.com/95735295/498816528-e231643d-88f5-428b-a34a-43a906d2cb9c.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU0NDE2MjgsIm5iZiI6MTc3NTQ0MTMyOCwicGF0aCI6Ii85NTczNTI5NS80OTg4MTY1MjgtZTIzMTY0M2QtODhmNS00MjhiLWEzNGEtNDNhOTA2ZDJjYjljLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDA2VDAyMDg0OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWY1ZDBhZTE1NWUyM2QxNzQ2NzExNjc3ZDdjYzg0MWZkNDk0ZThlODNkZTQ1NjVlZDQ5NjMzNjkxOWU1Y2I4NDAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.UjY6JuBHTj_C-QRPN0iebswlJyafPgZyddlT58AClFQ)
==========================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================

[](#fynix---the-modern-php-validation-engine-)

[![Packagist Version](https://camo.githubusercontent.com/081d339cc138c8f9f620dd53094fe02e89a234f201c04f1bf5c33910085221af/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f62697368616c73687265737468612f66796e69782e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/bishalshrestha/fynix)[![Downloads](https://camo.githubusercontent.com/111f3f634844bb7696990ed7ff63bbeab8f68904cc70ac44984979dd1961cfd8/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f62697368616c73687265737468612f66796e69782e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/bishalshrestha/fynix)[![CI](https://github.com/shrestha-bishal/fynix/actions/workflows/ci.yml/badge.svg)](https://github.com/shrestha-bishal/fynix/actions/workflows/ci.yml/badge.svg)[![PHP Version](https://camo.githubusercontent.com/6b0b196d08ee68965c84e43dbbe8188dda4893f5bfb9f3749397ca8792beb156/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f62697368616c73687265737468612f66796e69782e7376673f7374796c653d666c61742d737175617265)](https://camo.githubusercontent.com/6b0b196d08ee68965c84e43dbbe8188dda4893f5bfb9f3749397ca8792beb156/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f62697368616c73687265737468612f66796e69782e7376673f7374796c653d666c61742d737175617265)[![License](https://camo.githubusercontent.com/823cc524442ed9cdc2307f7fa216e555587d4ba5bd7d1758f093e7d3d7ccf88a/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f62697368616c73687265737468612f66796e69782e7376673f7374796c653d666c61742d737175617265)](https://camo.githubusercontent.com/823cc524442ed9cdc2307f7fa216e555587d4ba5bd7d1758f093e7d3d7ccf88a/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f62697368616c73687265737468612f66796e69782e7376673f7374796c653d666c61742d737175617265)

**fynix** is a modern, extensible PHP library for validating primitive data types, files, complex objects, and nested objects, including arrays of objects. Designed for high performance and flexibility, it enables developers to implement robust validation logic across modern PHP applications and frameworks.

[![logo](https://private-user-images.githubusercontent.com/95735295/498819219-d498f52c-52db-4543-aafd-68318bc7df34.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU0NDE2MjgsIm5iZiI6MTc3NTQ0MTMyOCwicGF0aCI6Ii85NTczNTI5NS80OTg4MTkyMTktZDQ5OGY1MmMtNTJkYi00NTQzLWFhZmQtNjgzMThiYzdkZjM0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDA2VDAyMDg0OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWYzYjg3OTUwNmEwNWI3ZTY4OTFlMjQ4YTQxMjI1ZjAwMzIzMWU3Mjg0ZTg2MmVlMDEzNzE5Yjg3YzA3MTU2NjEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.2-EW9HyYr5uvjBDd_lN_BTSp8DEkeEnbKhl087II30M)](https://private-user-images.githubusercontent.com/95735295/498819219-d498f52c-52db-4543-aafd-68318bc7df34.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzU0NDE2MjgsIm5iZiI6MTc3NTQ0MTMyOCwicGF0aCI6Ii85NTczNTI5NS80OTg4MTkyMTktZDQ5OGY1MmMtNTJkYi00NTQzLWFhZmQtNjgzMThiYzdkZjM0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA0MDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNDA2VDAyMDg0OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWYzYjg3OTUwNmEwNWI3ZTY4OTFlMjQ4YTQxMjI1ZjAwMzIzMWU3Mjg0ZTg2MmVlMDEzNzE5Yjg3YzA3MTU2NjEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.2-EW9HyYr5uvjBDd_lN_BTSp8DEkeEnbKhl087II30M)Table of Contents
=================

[](#table-of-contents)

1. [Overview Example](#overview-example)

    - [FreightDto](#freightdto)
    - [Nested DTO Structure](#nested-dto-structure)
    - [Setting Up Example Validation](#setting-up-example-validation)
    - [Validating DTOs](#validating-dtos)
    - [Validation Example Image](#validation-example-image)
    - [Flattened Validation Example Image](#flattened-validation-example-image)
2. [Features](#features)
3. [Architecture Overview](#architecture-overview)

    - Validator Classes
    - Validator Options
    - ValidationHandler
    - ValidationRegistry
    - ValidationError
4. [Validator Classes](#validator-classes)

    - ValidatorBase
    - StringValidator
    - NumberValidator
    - EmailValidator
    - PhoneNumberValidator
    - PasswordValidator
    - ImageValidator
    - ImagesValidator
    - ObjectValidator
    - ObjectArrayValidator
5. [Validator Options](#validator-options)

    - ValidationOptionsBase
    - StringValidationOptions
    - NumberValidationOptions
    - EmailValidationOptions
    - PhoneNumberValidationOptions
    - PasswordValidationOptions
    - ImageValidationOptions
6. [Validation Matrix](#validation-matrix)

    - Feature Comparison Table
    - Key Capabilities
        - Nullability
        - Min/Max Length
        - Min/Max Number
        - HTML Exclusion
        - Format/Pattern
        - Uniqueness/Existence
        - Nested Validation
        - Array Validation
7. [Basic Usage Examples](#basic-usage-examples)

    - [String Validation](#string-validation)
    - [Email Validation](#email-validation)
    - [Number Validation](#number-validation)
    - [Password Validation](#password-validation)
    - [Image Validation](#image-validation)
    - [Nested Object Validation](#nested-object-validation)
    - [Array of Objects Validation](#array-of-objects-validation)
    - [Example: Full User Registration Validation](#example-full-user-registration-validation)
8. [Advanced Usage](#advanced-usage)

    - [Batch Validation](#batch-validation)
    - [Associative Validation](#associative-validation)
    - [Error Normalization](#error-normalization)
    - [Registering Custom Validation Rules](#registering-custom-validation-rules)
    - [Reusable Validation Instances - More modern way](#reusable-validation-instances---more-modern-way)
9. [Core Classes and Their Roles](#core-classes-and-their-roles)

    - [Validator](#validator)
    - [ValidationHandler](#validationhandler)
    - [ValidationRegistry](#validationregistry)
    - [ValidationError](#validationerror)
10. [Extending the Library](#extending-the-library)

    - Creating Custom Validators
    - Creating Custom Options Classes
11. [Best Practices &amp; Advanced Patterns](#best-practices--advanced-patterns)

    - Centralize Validation Logic
    - Normalize Errors for UI
    - Custom Validators
    - Custom Options
    - Batch Validation
12. [Installation](#installation)
13. [Testing](#testing)
14. [Contributing](#contributing)

    - Forking &amp; Branching
    - Committing
    - Running Tests
    - Pull Requests
    - Reporting Issues
15. [Funding &amp; Sponsorship](#funding--sponsorship)

    - [Support Options](#support-options)
        - GitHub Sponsors
        - Buy Me a Coffee
        - Thanks.dev
16. [License](#license)
17. [Author](#author)

    - GitHub Profile
    - Repository
    - Website
    - Packagist Link

Overview Example
----------------

[](#overview-example)

### FreightDto

[](#freightdto)

```
