Насколько тонким должен быть контроллер?Я понимаю, как поместить всю бизнес-логику в модели, но как насчет других вещей.
Например, скажем, я писал блог-сайт, где у каждого пользователя может быть несколько постов.В настоящее время пользователь может создавать сообщения, посещая контроллер сообщений и выполняя действие create.Вот небольшой пример того, что произойдет в настоящее время.
class Controller_Post extends Controller {
function action_create() {
if ( ! empty($_POST)) {
$post = new Model_Post;
$post->user_id = $this->logged_in_user->id;
$post->values($_POST);
if ( ! $post->create()) {
echo 'Error';
}
else
{
echo 'Saved';
}
}
}
}
Мой вопрос заключается в том, что помешало бы мне использовать приведенную выше логику в пользовательской модели, например, так:
class Model_User extends Model {
function create_post($post) {
$post = Model::factory('post')->values($post);
$post->user_id = $this->id;
if ( ! $post->create()) {
return FALSE;
}
else
{
return TRUE;
}
}
}
Если бы это было сделано таким образом, контроллер был бы даже меньше, чем то, что я поставил.Это имеет больше смысла для меня, потому что пользователь - тот, кто создает сообщение, поэтому я думаю, что это должно быть в пользовательской модели, а не в контроллере.
Если это помогает, я использую каркас Kohana.
Спасибо