Является ли это исключительной ситуацией?
Например есть класс, который в конструктор получает некоторые входные данные, которые необходимы для инициализации объекта.
Например:
class User
{
private $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()) ..
Как принято решать подобные задачи ?