Например есть класс, который в конструктор получает некоторые входные данные, которые необходимы для инициализации объекта.
Например:
class User {
private ?array $userData;
public function __construct(int $userId) {
$this->userData = ...;
// ...
}
// ...
public function getId(): int {
return $this->userData["ID"];
}
public function getFullName(): string {
return implode( " ",
clearArray( [
$this->userData["NAME1"],
$this->userData["NAME2"],
$this->userData["NAME3"]
] )
);
}
public function getLogin(): string {
return $this->userData["LOGIN"];
}
public function getEmail(): string {
return $this->userData["EMAIL"];
}
}
Что делать, в случаях, когда по входным данным невозможно инициализировать объект ? Например, по заданному Id не удалось найти пользователя ? Выбрасывать исключение ? или создать доп. метод
isExist(): bool ?
Я склонен к первому варианту, т.к. во втором случае, нужно будет, каждый раз, перед использование методов класса, писать проверку
if($user->isExist()) ..
Как принято решать подобные задачи ?