нем.
Я хочу попробовать хранить валидацию о типе в самом 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();
}
Возможно кто-то подскажет более интересные способы?
не так. суть валидации VO в том что он не должен позволять тебе создать невалидный vo. А за валидацию данных пусть валидатор отвечает
Обсуждают сегодня