class User{
protected $email;
protected $lastAuthDate;
function __construct($email){
$this->email = $email;
}
}
Первый вариант, следущая версия выпущена, но до тестировщика не добралась
Зачем они нужны и кто что в них пишет
if(!$validationModel->isValid()){
throw new ValidationException($validationModel->errors());
}
try{
//вызов функционала с валидацией
}
catch(ValidationException $ex){
return new JsonResponse([
"result"=>false,
"errors"=>$ex->getErrors()
]);
}
catch(Exception $ex){
$this->logger->error($ex->getMessage());
return new JsonResponse([
"result"=>false,
"errors"=>["возникла ошибка, свяжитесь с администратором сайта"]
]);
return new JsonResponse([
"result"=>true
]);
}
2. Гетеры предоставляют скрытие реализации, наружу торчит метод getEmail() а внутри класса вы можете делать кучу пробразований, рефакторить код, но это останется внутри черного ящика.
Внешний код как был настроен на getEmail() так и остался.
я представляю код завязанный на $user->email не получится просто взять и отрефакторить
3. через сеттеры, можно делать валидацию, как писали выше, это удобно https://stackoverflow.com/questions/15209511/best-...
в вашем случае модель может ходить с некорректными данным по приложению
4. вот давайте подсчитаем минусов который дает ваш подход, все из за чего что будут реализованы 100 не нужных сеттеров и геттеров, просто может пересмотреть дизайн класса если у него столько свойств?