phpsoftbox / validator
Validator component for the PhpSoftBox framework
dev-master
2026-03-07 10:18 UTC
Requires
- php: ^8.4
- ext-fileinfo: *
- phpsoftbox/collection: dev-master
- phpsoftbox/validator-db: ^1.0
- psr/http-message: ^2.0
- psr/http-server-handler: ^1.0
- psr/http-server-middleware: ^1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.93
- phpsoftbox/cli-app: dev-master
- phpsoftbox/cs-fixer: ^1.1.0
- phpsoftbox/http-message: dev-master
- phpsoftbox/session: dev-master
- phpunit/phpunit: ^11.2
This package is auto-updated.
Last update: 2026-03-07 10:18:51 UTC
README
Компонент для валидации данных через набор правил‑объектов.
Установка
composer require phpsoftbox/validator
Быстрый старт
<?php use PhpSoftBox\Validator\Validator; use PhpSoftBox\Validator\Rule\StringValidation; use PhpSoftBox\Validator\Rule\IntValidation; $validator = new Validator(); $result = $validator->validate( data: [ 'name' => 'Alex', 'age' => 17, ], rules: [ 'name' => [(new StringValidation())->min(2)->max(50)->required()], 'age' => [(new IntValidation())->min(18)], ], ); if ($result->hasErrors()) { $errors = $result->errorBag()->all(); }
Form Validation Base
Для переиспользуемых валидаторов форм доступны:
FormValidationInterfaceAbstractFormValidation
Они позволяют строить form-like валидаторы поверх Validator и использовать единые typed getters (getString, getInt, getBool, ...).
Документация
- docs/01-usage.md — базовое использование и результат валидации
- docs/02-data-paths.md — dot‑пути и wildcard
- docs/03-messages.md — сообщения, плейсхолдеры, attributes
- docs/04-required.md — required/nullable и required‑сценарии
- docs/05-filters.md — фильтры для подготовки данных
- docs/validators/01-string-validation.md — StringValidation
- docs/validators/02-int-validation.md — IntValidation
- docs/validators/03-float-validation.md — FloatValidation
- docs/validators/04-bool-validation.md — BoolValidation
- docs/validators/05-array-validation.md — ArrayValidation
- docs/validators/06-present-validation.md — PresentValidation
- docs/validators/07-filled-validation.md — FilledValidation
- docs/validators/08-missing-validation.md — MissingValidation
- docs/validators/09-exclude-validation.md — ExcludeValidation
- docs/validators/10-prohibited-validation.md — ProhibitedValidation
- docs/validators/11-prohibits-validation.md — ProhibitsValidation
- docs/validators/12-anyof-validation.md — AnyOfValidation
- docs/validators/13-bail-validation.md — BailValidation
- docs/validators/14-date-validation.md — DateValidation
- docs/validators/15-file-validation.md — FileValidation
- docs/validators/16-exists-validation.md — ExistsValidation
- docs/validators/17-unique-validation.md — UniqueValidation
- docs/validators/18-phone-validation.md — PhoneValidation
Режимы остановки
use PhpSoftBox\Validator\ValidationOptions; use PhpSoftBox\Validator\ValidationStopMode; $options = new ValidationOptions(stopMode: ValidationStopMode::FIRST_PER_FIELD);