Создание валидаторов
Каждый валидатор реализует интерфейс \Bitrix\Main\Validation\Validator\ValidatorInterface
с методом public function validate(mixed $value): ValidationResult
.
Валидатор выполняет простую задачу — проверяет значение. Он не знает, является ли это значение частью свойства или класса, и не знает, что связан с атрибутом. Валидатор можно представить как строительный блок, из которого создается более сложная система проверки данных.
Пример валидатора Min
:
namespace Bitrix\Main\Validation\Validator; use Bitrix\Main\Localization\Loc; use Bitrix\Main\Validation\ValidationError; use Bitrix\Main\Validation\ValidationResult; use Bitrix\Main\Validation\Validator\ValidatorInterface; final class Min implements ValidatorInterface { public function __construct( private readonly int $min ) { } public function validate(mixed $value): ValidationResult { $result = new ValidationResult(); if (!is_numeric($value)) { $result->addError( new ValidationError( Loc::getMessage('MAIN_VALIDATION_MIN_NOT_A_NUMBER'), failedValidator: $this ) ); return $result; } if ($value < $this->min) { $result->addError( new ValidationError( Loc::getMessage('MAIN_VALIDATION_MIN_LESS_THAN_MIN'), failedValidator: $this ) ); } return $result; } }
© «Битрикс», 2001-2025, «1С-Битрикс», 2025