Должен ли я проверять свойства объекта домена при их установке?
В этом примере у меня есть объект пользовательского домена из уровня модели, и в настоящее время я просто проверяю тип и/или формат переданного параметра перед установкой свойства, потому что я понятия не имею, что должно проверяться, когда речь идет об объектах домена. Некоторые примеры помогут мне понять это.
Должен ли я проверять свойства объекта домена именно так или вообще не должен их проверять?
В последнем случае я могу просто удалить все сеттеры и геттеры и просто сделать свойства объекта домена общедоступными, чтобы я мог просто взаимодействовать с ними напрямую.
class User
{
private $id;
private $firstname;
private $lastname;
private $email;
private $password;
private $registerDate;
public function setId($id)
{
if (is_int($id)) {
$this->id = $id;
} else {
throw new Exception('Parameter must be an integer.');
}
}
public function setFirstname($firstname)
{
if (is_string($firstname)) {
$this->firstname = $firstname;
} else {
throw new Exception('Parameter must be a string.');
}
}
//{ etc setters }
public function __get($property) {
if (property_exists($this, $property)) {
return $this->$property;
}
}
}