Создание валидаторов
Каждый валидатор реализует интерфейс \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
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.