Всем привет.
Как более правильно будет сделать модель для работы, например, с юзерами?
Вариант 1:
class Users {
protected $user_id;
public function by_id($id)
{
$this->user_id=$id;
return $this;
}
public function is_exist()
{
/*
$exist = здесь кусок кода, который смотрит - есть ли в БД юзер с айдишником $this->user_id
*/
return $exist ? true : false;
}
}
В таком случае я могу проверить существует ли пользователь:
$user=new Users();
$exist=$user->by_id(1)->is_exist();
Вариант 2:
class Users {
protected $user_id;
public function by_id($id)
{
$this->user_id=$id;
return $this;
}
public function is_exist($id=false)
{
$id=$id ? $id : $this->user_id;
/*
$exist = здесь кусок кода, который смотрит - есть ли в БД юзер с айдишником $id
*/
return $exist ? true : false;
}
}
В таком случае я могу проверить существует ли пользователь уже двумя способами:
$user=new Users();
$exist=$user->is_exist(1);
$exist2=$user->by_id(1)->is_exist();
Вопрос в том, правильно ли составлять класс таким образом, что одно и то же действие может выполняться двумя путями?
Какой способ будет верный - тот, где метод получает аргумент напрямую, или сперва формируется модель в нужном мне виде, а потом извлекается нужное значение.
Я так же понимаю, что ответ может быть - "без разницы", но как делаете конкретно вы?