@Danbka

Как валидировать большое количество свойств класса?

Привет.

Предположим есть некий веб-сервис который принимает на вход данные о пользователе: ФИО, пол, профессия, город и т.д., всего их около 20. Все обязательны.

Мне необходимо работать с этим сервисом.

Для этого у меня есть класс User, в котором есть куча свойств:

Class User {
	private $lastName;
	private $firstName;
	private $city;
	....
}


При создании объекта класса User необходимо установить значения этих свойств.

Правильно ли я понимаю, что у меня будет 20 методов вида setLastName(), setFirstName(), setCity() и т.д.? Это нормальная практика? Или есть более "красивый" способ?

Кроме того, где должна происходить валидация значений? В этих же методах?

Еще меня смущает "некрасивый" код вида:

$user = new User();
$user->setLastName('Ivanov');
$user->setFirstName('Dmitriy');
$user->setCity('Moscow');
....


т.е. порядка 20 строк с установкой значений.
  • Вопрос задан
  • 330 просмотров
Пригласить эксперта
Ответы на вопрос 3
oxyberg
@oxyberg
Продуктовый дизайнер ВКонтакте
Используйте магические методы __set и __get, чтобы не плодить кучу сеттеров-геттеров.
Ответ написан
@heahoh
Full stackoverflow developer
Например в yii используется вот такой подоход для валидации
Ответ написан
Комментировать
dmitriylanets
@dmitriylanets
веб-разработчик
$user = User::fromState([
"LastName"=>"Ivanov",
"FirstName"=>"Dmitriy"
]);

сам метод должен работать также через set-ры
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 05:01
999999 руб./за проект
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект