169 похожих чатов

Всем привет. Появился вопрос относительно Value Object и валидации валидации в

нем.
Я хочу попробовать хранить валидацию о типе в самом VO. За рамками Hello World проекта, мы
натыкаемся на проблемы со сложностью валидации (иногда она совсем не в 2 строки) и вопросом о том,
как эту самую валидацию показать пользователю.

По теме информации с примерами маловато, а те, что есть очень простые, например валидация Email в 1 строку.
Для справки, вот так зенд валидирет email https://github.com/zendframework/zend-validator/blob/master/src/EmailAddress.php.

Собственно я в поиске подсказок, советов и удобного решения, пока пришел примерно к такому:

Api самого VO (скорее всего подмешиваем трейтом)


$emailValidation = Email::validation('my-data');

$emailValidation->isValid();
$emailValidation->getErrorCode();
$emailValidation->getErrorMessage();


Пример использования


$emailValidation = Email::validation($data['email']);

if ($emailValidation->isValid() === true) {
$email = new Email($data['email']);
} else {
$errors[] = $emailValidation->getErrorMessage();
}


Пример использования 2


try {

$email = new Email($data['email']);

} catch (\ValidationException $e) {

$errors[] = $e->getErrorMessage();

}


Возможно кто-то подскажет более интересные способы?

1 ответов

9 просмотров

не так. суть валидации VO в том что он не должен позволять тебе создать невалидный vo. А за валидацию данных пусть валидатор отвечает

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта