CodeIgniter: что делает хорошую модель - PullRequest
3 голосов
/ 28 июня 2010

Что делает хорошую модель MVC в CodeIgniter.В настоящее время моя модель «пользователя» в основном использует те же активные функции записи из библиотеки базы данных.Единственное отличие состоит в том, что вам не нужно указывать таблицу базы данных и просто делать:

$this->usermodel->where('username','test'),
$user = $this->usermodel->get();

Это выглядит немного неловко, поскольку это не делает его «намного проще».

Еще один способ, которым я придумал, - сделать пользовательскую модель похожей на пользовательский объект с функцией загрузки.Но это неэффективно при загрузке более 1 пользователя.

Могу ли я получить несколько советов от вас, ребята?Спасибо.

Ответы [ 3 ]

2 голосов
/ 07 ноября 2010

Хороший совет: если вы не позволяете модели говорить прямо друг с другом, вам всегда (или когда это возможно) приходится использовать контроллер для такого рода связи.

Я также слышал мнение о том, что неуместно иметь логику в ваших моделях ... Я не знаю, так ли это, но это правило, которое я нарушал много раз (если кто-то знает больше о тему пожалуйста поправьте меня).

И, конечно, всегда имейте в виду, что модель должна быть многоразовой, поэтому я пытаюсь дать общее решение некоторых проблем, а не конкретное приложение ... с другой стороны, контроллер, похоже, является одноразовым компонентом, так что это то, где вы должны делать некрасивые вещи, которые никогда не будут использованы в других проектах ...

Надеюсь, это немного поможет

0 голосов
/ 29 июня 2010

Смысл в том, чтобы абстрагировать всю логику вашего приложения в модели и использовать контроллеры просто для «управления» вашим веб-интерфейсом и посредничества между веб-интерфейсом и моделями.

Модели - это ваша программа, и вы сможете легко полностью изменить интерфейс пользователя, не затрагивая модели приложения.

0 голосов
/ 29 июня 2010

Я думаю, что «намного проще» приходит, когда вы работаете с большими наборами данных и имеете много сложных запросов.Насколько я понимаю, если вы работаете над чем-то относительно простым, вы можете отказаться от модели и сделать ваши вызовы БД изнутри контроллера.По сути, это не «лучшая практика», а скорее личные предпочтения.

Архитектура MVC позволяет лучше разделять код на части и может обеспечить лучшую структуру и повторное использование кода, но вам это не нужно »Следуйте идее MVC к букве, чтобы выполнить много вещей - опять же, все сводится к предпочтениям.

...