phpsoftbox/validator-db

Database validation contract for the PhpSoftBox framework

Maintainers

Package info

github.com/phpsoftbox/validator-db

pkg:composer/phpsoftbox/validator-db

Statistics

Installs: 115

Dependents: 2

Suggesters: 0

Stars: 0

Open Issues: 0

v1.2.1 2026-06-16 17:42 UTC

This package is auto-updated.

Last update: 2026-06-16 17:43:42 UTC


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