@thorii

Можно ли смешивать логику валидации с методами валидации в одном классе?

Есть класс Validation. В конструктор передаются правила валидации
$validation = new Validation([
    'FieldName' => [
        'filtername' => ['filterArg1' => 'value'] //Example ['filterLen' => ['max' => 10, 'min' => 5]]
    ]
])

if($validation->isValid(['FieldName' => 'Value']) {
    // is valid, continue work;
} else echo $validation->getMessage();

В валидаторе пока один метод isValid(array $data) который пробегается по фильтрам (данные передаются в формате 'ИмяПоля' => 'Значение');

Так вот можно ли в этом же классе определить методы для валидации (а пока я их вынес в отдельный класс Filters). Будет ли это считаться смешиванием логики?
  • Вопрос задан
  • 88 просмотров
Пригласить эксперта
Ответы на вопрос 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
По логике:
1. Фильтрация (ожидаемый набор данных)
2. Валидация (проверка значения)
Я бы фильтрацию вставил бы приватным методом в класс Validation и прописал бы внутри-классовые зависимости в зависимости от параметров в методе валидации.

И еще, лучше создавать класс валидации однократно, перед началом валидации любых данных, в дальнейшем - использовать лишь его методы в других классах. Это и быстрее, и памяти будет занимать меньше.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы