phpsoftbox / validator-db
Database validation contract for the PhpSoftBox framework
v1.2.1
2026-06-16 17:42 UTC
Requires
- php: ^8.4
- phpsoftbox/database-lookup: dev-master
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.93
- phpsoftbox/cli-app: dev-master
- phpsoftbox/cs-fixer: ^1.1.0
- phpunit/phpunit: ^11.2
README
Контракты для интеграции валидатора с базой данных.
Установка
composer require phpsoftbox/validator-db
Использование
use PhpSoftBox\Validator\Db\Contracts\DatabaseBulkValidationAdapterInterface; use PhpSoftBox\Validator\Db\Contracts\ExistingValuesQueryInterface; use PhpSoftBox\DatabaseLookup\LookupSpec; final class MyAdapter implements DatabaseBulkValidationAdapterInterface { public function exists(string $table, array $criteria, ?string $connection = null): bool { // ... } public function existingValues(LookupSpec $lookup, ?string $connection = null): ExistingValuesQueryInterface { // Возвращает query object. // Обычное выполнение: ->fetch() // С прогревом: ->warmup()->fetch() } public function unique( string $table, array $criteria, ?string $connection = null, ?string $ignoreColumn = null, mixed $ignoreValue = null, ): bool { // ... } }
Если adapter не поддерживает bulk-проверки, он может реализовать только
DatabaseValidationAdapterInterface. Для правил вроде ExistsValidation::all()
нужен DatabaseBulkValidationAdapterInterface.
Лицензия
MIT