При реализации моделей с использованием шаблона MVC, насколько сложными должны быть мои модели?
Допустим, у меня есть несколько таких таблиц:
У меня есть контроллер под названием UserController. Этот контроллер должен позволять мне входить в систему, создавать пользователей и т. Д. .
<!-- language: php -->
class UserController{
public function create($array){
...
}
public function login($email, $password){
...
}
}
Должны ли мои модели быть очень примитивными, реализующими только операции CRUD через ORM? Это привело бы к такому коду:
<!-- language: php -->
class UserController{
public function create($array){
$userModel->username = 'blah';
$userModel->blah = 'blah';
$id = $userModel->save();
$emailModel->id = $id;
$emailModel->email = "emailhere";
$emailModel->save();
//Do the same for addresses
}
public function login($email, $password){
...
}
}
Или, в качестве альтернативы, я мог бы иметь более сложные модели:
<!-- language: php -->
UserModel{
public function login($email, $password){
//Do the joining and checking here, then return true or false to the controller
}
}
Затем в моем контроллере:
<!-- language: php -->
userModel->login($mail, $password);
Итак, что лучше? Втиснуть всю логику в модели или у меня должны быть модели, выполняющие только базовые операции CRUD? Наконец, как мне работать с объединениями таблиц? Должны ли они обрабатываться внутри модели или контроллер?
Приветствия